因公司业务须要,对原来在/usr/local/MySQL/data目录下的数据迁移到/data/local/mysql/mysqlData。mysql
缘由是系统盘过小,只有20G,几下就快满了。sql
参考过几篇文章,基于大神们的思路,我封装成了.sh脚本。数据库
步骤以下:bash
1) 先修改好/etc/my.cnf, 服务器
##[mysqld]
##datadir=/data/local/mysql/mysqlData/datapost
2)编写mysql_datadir_move.sh.net
#!/bin/bash
echo 1 mkdir /data/local/mysql/mysqlData
mkdir -p /data/local/mysql/mysqlData
#stop mysql
#systemctl status mysqld
echo 2 stop mysqld
systemctl stop mysqld
echo 3 cp -rf /usr/local/mysql/data/ /data/local/mysql/mysqlData
#show variables like '%dir%';
#move
cp -rf /usr/local/mysql/data/ /data/local/mysql/mysqlData
chown -R mysql:mysql /data/local/mysql/mysqlData/
#vi /etc/my.cnf
##[mysqld]
##datadir=/data/local/mysql/mysqlData/data
#vi /etc/init.d/mysqld
echo 4 start mysqld
systemctl start mysqld
echo 5 finishedget
3)上传mysql_datadir_move.sh到数据库所在的服务器,运行it
chmod u+x mysql_datadir_move.sh && ./mysql_datadir_move.shclass
等待一下子便可完成