修改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 有效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现