在CentOS中使用rpm安装的mysql,其默认的配置为
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
数据文件默认存储在/var/lib/mysql
中,这个磁盘分区的容量可能比较低,需要修改配置,将之迁移到新的大容量分区。
可以使用df -h /var/lib/mysql
来查看这个目录所在分区的容量,以下显示总容量为91G,可用85G
计划将mysql数据目录迁移到/data
目录下。
/var/lib/mysql -> /data/var/lib/mysql
- 停止服务:
systemctl stop mysqld
- 创建目录:
/data/var/lib
- 复制原始文件到新的目录:
cp -a /var/lib/mysql /data/var/lib/
- 修改新目录的权限:
chown -R mysql:mysql /data/var/
,-R逐级修改 - 备份配置文件:
cp /etc/my.cnf /etc/my.cnf.bak
- 修改配置文件:
datadir=/data/var/lib/mysql
,socket=/data/var/lib/mysql/mysql.sock
到这里,迁移就完成了,但如果此时重启mysql服务,大概率会启动失败
查看mysql的日志文件:tail -n 50 /var/log/mysqld.log
,会发现报了莫名的警告
如果这台机器启用了selinux,就会导致以上的错误,请关闭selinux: - 暂时关闭:setenforce 0
- 永久关闭:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启
该解决办法参考了:https://www.cnblogs.com/shanxia0812/p/14536755.html 有效