缘由
随着业务的持续运行,mysql的数据文件越来越大,磁盘空间告急。。。
解决方案
需要将mysql的数据文件转移到另一块更大的有磁盘上
操作步骤
1.暂停mysql的服务
systemctl stop mysqld
2. 将mysql的数据文件转移到目标磁盘目录, 如 /data/mysql
cp -a /var/lib/mysql /data/mysql
用cp -a, 可以保留原目录的上下文信息,如权限等设置
转移后的目录:
3. 更改mysql的配置文件,设置新数据目录地址与socket地址
主要修改如下三项:
4. 更改selinux的策略,如果关闭了selinux,这一步可以跳过
4.1 安装修改工具semanage
yum -y install policycoreutils-python
4.2 执行如下两条修改指令
semanage fcontext -a -t mysqld_db_t "【新的mysql数据文件目录】(/.*)?"如 :semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv 【新的mysql数据文件目录】如 :restorecon -Rv /data/mysql
4.3 修改后的策略可通过命令
semanage fcontext -l | grep -i mysql查看
5. 启动mysql, 转移完成
后记:
其实可以更简化,从第三步开始,不用更改mysql的配置,只需要建立原数据目录与新目录之前的软链接,就可以了
ln -s /data/mysql /var/lib/mysql
随着业务增长,MySQL数据文件占用空间增大,为解决磁盘告急问题,本文提供了一种将MySQL数据文件转移到更大磁盘的解决方案。具体步骤包括:暂停MySQL服务,使用cp -a命令迁移数据,更新配置文件设定新数据目录,调整selinux策略,最后重启MySQL服务以完成迁移。



762

被折叠的 条评论
为什么被折叠?



