修改Centos中mysql数据文件的存储位置(迁移mysql数据)
在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
到这里,迁移就完成了,但如果此时重启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 有效



浙公网安备 33010602011771号