修改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

  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/mysql
    到这里,迁移就完成了,但如果此时重启mysql服务,大概率会启动失败

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

如果这台机器启用了selinux,就会导致以上的错误,请关闭selinux

  1. 暂时关闭:setenforce 0
  2. 永久关闭:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启

该解决办法参考了:https://www.cnblogs.com/shanxia0812/p/14536755.html 有效

posted @   谭五月  阅读(1212)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示