修改Centos中mysql数据文件的存储位置(迁移mysql数据)

发布时间 2023-08-03 11:03:57作者: 谭五月

在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

  1. 停止服务:systemctl stop mysqld
  2. 创建目录:/data/var/lib
  3. 复制原始文件到新的目录:cp -a /var/lib/mysql /data/var/lib/
  4. 修改新目录的权限:chown -R mysql:mysql /data/var/,-R逐级修改
  5. 备份配置文件:cp /etc/my.cnf /etc/my.cnf.bak
  6. 修改配置文件:datadir=/data/var/lib/mysqlsocket=/data/var/lib/mysql/mysql.sock
    到这里,迁移就完成了,但如果此时重启mysql服务,大概率会启动失败

    查看mysql的日志文件:tail -n 50 /var/log/mysqld.log,会发现报了莫名的警告

    如果这台机器启用了selinux,就会导致以上的错误,请关闭selinux:
  7. 暂时关闭:setenforce 0
  8. 永久关闭:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启
    该解决办法参考了:https://www.cnblogs.com/shanxia0812/p/14536755.html 有效