主从数据迁移需先备份主库并记录binlog位置,通过mysqldump导出数据,传输至从库后导入,再配置CHANGE MASTER TO指向主库binlog坐标,最后启动复制并验证状态正常。

MySQL 主从数据迁移通常是在搭建主从复制(Replication)时的关键步骤。目标是将主库的当前数据状态完整同步到从库,确保后续的 binlog 增量复制能正常进行。以下是标准操作流程。
使用 mysqldump 工具备份主库所有数据,并记录 binlog 位置:
命令示例:
mysqldump -u root -p --all-databases --master-data=2 --single-transaction --routines --triggers --events > backup.sql
说明:
使用 scp 或 rsync 等工具把 backup.sql 发送到从库服务器:
scp backup.sql user@slave_ip:/path/to/
登录从库 MySQL,执行导入:
mysql -u root -p < backup.sql
导入过程会重建所有数据库和表结构及数据,保持与主库一致。
进入从库 MySQL 命令行,执行 CHANGE MASTER TO 命令。
先从 backup.sql 中提取 binlog 信息:
head -n50 backup.sql | grep "CHANGE MASTER TO"
输出类似:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=1234;
根据该信息配置从库:
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='repl_password',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1234;
执行启动命令:
START SLAVE;
查看复制状态:
SHOW SLAVE STATUS\G
重点关注:
主库需开启 binlog 并设置唯一 server-id:
server-id = 1
log-bin = mysql-bin
从库配置:
server-id = 2
确保主库有用于复制的用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
基本上就这些,只要备份时获取了正确的 binlog 位置,从库导入后就能顺利衔接主库的增量更新。
以上就是mysql如何迁移主库数据到从库的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号