今天分享一下MySQL主从复制集群如何迁移数据目录。
操作目标
将主库和从库的数据目录 从 ➡️ /data/mysql/data/
迁移到 ➡️ /dataroot/mysql/data/
接下来是迁移的详细步骤
1 迁移前准备
1.1 备份数据库数据
在进行数据目录迁移之前,一定要做好完整备份!主库和从库都需要备份。可以通过物理备份或逻辑备份两种方式
备份方法 1:物理备份
使用 rsync
或 cp
直接备份当前 data 目录
# 停止 MySQL 服务(避免写入导致数据不一致)
systemctl stop mysqld
# 备份当前数据目录
cp -a data/mysq/data data/mysql/data_bak_$(date +%F)
# 或使用 rsync
rsync -avh data/mysql/data/ data/mysql/data_bak_$(date +%F)/复制
备份方法 2:逻辑备份(按需)
mysqldump -uroot -p --all-databases --master-data=2 --single-transaction --flush-logs - --triggers --routines > backup/mysql_full_$(date +%F).sql
复制
2 确认主从复制状态
在主库:
SHOW MASTER STATUS;
复制

在从库:
SHOW SLAVE STATUS\G;
复制

确保从库:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
没有 Seconds_Behind_Master
很大
⚠️ 建议暂停应用写操作后,再确认一次状态!
3 停止数据库服务
🚫 一定要先停从库,再停主库。
# 从库
systemctl stop mysqld
# 主库
systemctl stop mysqld复制
4 迁移数据目录
4.1 创建新目录
mkdir -p dataroot/mysql/data
复制
4.2 复制旧目录到新目录(保留权限/软链接等信息)
rsync -avhP data/mysql/data/ dataroot/mysql/data/
复制
4.3 确认目录完整性
确保新目录数据完整、权限无误
ls -l dataroot/mysql/data
复制
5 修改配置文件
修改数据目录路径
主从库都要改
配置文件通常位置:/etc/my.cnf
或 /etc/mysql/my.cnf
;有些是自定义的
我的配置文件是/data/mysql/my.cnf
[mysqld]
datadir=/dataroot/mysql/data
# socket 文件路径(如有需要),我的socket不放在之前的数据目录下,我不修改
# socket=/dataroot/mysql/data/mysql.sock复制
6 权限设置
6.1 修改目录权限
确保 mysql
用户拥有新目录权限
chown -R mysql:mysql dataroot/mysql/data
chmod 750 dataroot/mysql/data复制
7 检查 systemd 配置(如有)
7.1 检查 mysqld.service 文件
vim usr/lib/systemd/system/mysqld.service
复制
如果里面有 datadir
,要和 my.cnf
保持一致。
7.2 重载 systemd
systemctl daemon-reexec
复制
8 启动数据库服务
8.1 启动主库
systemctl start mysqld
复制
检查日志:
tail -f /var/log/mysqld.log
复制
8.2 启动从库
systemctl start mysqld
复制
9 验证新数据目录是否生效
登录 MySQL,检查当前 datadir
:
mysql -uroot -p -e "SHOW VARIABLES LIKE 'datadir';"
复制
输出应该是:/dataroot/mysql/data/

10 验证主从同步状态
在从库执行:
mysql -uroot -p -e "SHOW SLAVE STATUS\G;"
复制
✅ 关键状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
(或很小)

11 验证应用访问与功能
确认业务可以正常访问 MySQL
检查主从复制 10-30 分钟稳定同步
观察
mysqld.log
,确保无报错
本次分享结束!
关注小编,添,可进入技术交流群。

文章转载自运维李哥不背锅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
1642次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
629次阅读
2025-04-25 15:30:58
墨天轮个人数说知识点合集
JiekeXu
465次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
452次阅读
2025-04-01 08:47:17
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
392次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
370次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
344次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
316次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
211次阅读
2025-04-15 15:27:53
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
188次阅读
2025-04-01 16:20:44