mysql如何迁移主库数据到从库

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

mysql如何迁移主库数据到从库

MySQL 主从数据迁移通常是在搭建主从复制(Replication)时的关键步骤。目标是将主库的当前数据状态完整同步到从库,确保后续的 binlog 增量复制能正常进行。以下是标准操作流程。

1. 备份主库数据

使用 mysqldump 工具备份主库所有数据,并记录 binlog 位置:

命令示例:

mysqldump -u root -p --all-databases --master-data=2 --single-transaction --routines --triggers --events > backup.sql

说明:

  • –all-databases:导出所有数据库。
  • –master-data=2:在 dump 文件中写入 CHANGE MASTER TO 所需的 binlog 文件名和位置(注释形式),用于从库定位复制起点。
  • –single-transaction:保证一致性,适用于 InnoDB,避免锁表。
  • –routines –triggers –events:包含存储过程、触发器、事件调度。

2. 将备份文件传输到从库

使用 scp 或 rsync 等工具把 backup.sql 发送到从库服务器:

scp backup.sql user@slave_ip:/path/to/

3. 在从库导入数据

登录从库 MySQL,执行导入:

mysql -u root -p < backup.sql

导入过程会重建所有数据库和表结构及数据,保持与主库一致。

4. 配置从库连接主库

进入从库 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;
mysql如何迁移主库数据到从库

Draft&Goal-Detector

检测文本是由 AI 还是人类编写的

mysql如何迁移主库数据到从库47

查看详情 mysql如何迁移主库数据到从库

根据该信息配置从库:

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;

5. 启动复制

执行启动命令:

START SLAVE;

查看复制状态:

SHOW SLAVE STATUSG

重点关注:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Last_Error: 应为空

注意事项

主库需开启 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 word 工具 ssl sql mysql 事件 数据库

上一篇
下一篇