1.关闭mysql服务
# 关闭
systemctl stop mysqld
# 查看是否关闭成功
systemctl status mysqld
2.数据库迁移
2.1首先创建要迁移的目标文件夹
[root@centosServer ~]# mkdir /home/mysql_data
2.2然后执行迁移
注意: -a 参数在复制的时候可以把权限复制到目标文件夹
如果数据库比较大,可能会超时,具体设置ssh不超时的办法,请百度!
[root@centosServer ~]# cp -a /var/lib/mysql /home/mysql_data/
3.修改三个配置文件
3.1第一个文件:修改之前先备份cp /etc/my.cnf /etc/my.cnfbak
编辑vi /etc/my.cnf
文件,修改datadir和socket路径,然后ESC退出:wq
保存
[root@centosServer ~]# vi /etc/my.cnf
[mysqld]
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
修改成
datadir=/home/mysql_data/mysql
socket=/home/mysql_data/mysql/mysql.sock
注意:假如/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文档,拷贝其中一个到/etc/并改名为my.cnf
[root@centosServer ~]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf
3.2第二个文件:修改之前先备份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak
编辑vi /etc/init.d/mysqld
文件,修改datadir路径,然后ESC退出:wq
保存
注意: 准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,
所以用上面的命令即可
[root@centosServer ~]# vi /etc/init.d/mysqld
# get_mysql_option datadir "/var/lib/mysql" mysqld
# datadir="$result"
修改成
get_mysql_option datadir "/home/mysql_data/mysql" mysqld
datadir="$result"
3.3第三个文件:修改之前先备份cp /usr/bin/mysqld_safe /usr/bin/mysqld_safebak
编辑vi /usr/bin/mysqld_safe
文件,修改datadir路径,然后ESC退出:wq
保存
[root@centosServer ~]# vi /usr/bin/mysqld_safe
# Or just give up and use our compiled-in default
else
DATADIR=/var/lib/mysql
fi
修改成
# Or just give up and use our compiled-in default
else
DATADIR=/home/mysql_data/mysql
fi
4.创建软连接,重启服务
# 创建软连接
ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
# 重启服务
systemctl daemon-reload
systemctl start mysqld