解决 MySQL 复制中不匹配的数据库
在 MySQL 复制领域,维护主从服务器之间的数据完整性至关重要。然而,网络中断等情况可能会破坏这种微妙的平衡,导致数据库出现差异。本指南提供了从头开始重新同步主数据库和从数据库的详细过程,确保再次无缝复制。
过程:
在主服务器:
-
重置master状态:使用RESET MASTER;清除master的复制信息。
-
锁定读操作:执行FLUSH TABLES WITH READ LOCK;防止转储时数据更改。
-
显示主状态:运行 SHOW MASTER STATUS;并记录结果的值。
生成主转储:
- 使用 mysqldump -u root -p 创建完整数据库转储 - -所有数据库> /a/path/mysqldump.sql.
解锁读操作:
- 执行 UNLOCK TABLES;释放读锁。
将转储文件复制到从服务器:
- 使用 scp 或任何合适的文件将转储文件传输到从服务器
在从服务器上:
-
停止从复制:运行 STOP SLAVE;停止复制过程。
-
加载主数据:使用 mysql -uroot -p
mysqldump.sql 用主服务器的数据填充从服务器。-
重置和同步日志:
- 执行 RESET SLAVE;清除从站的复制设置。
- 将 MASTER_LOG_FILE 和 MASTER_LOG_POS 替换为您从主站的 SHOW MASTER STATUS 记录的值;输出。使用 CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;.
-
启动从复制:
运行 START SLAVE;从主服务器恢复数据流。
验证:
- 使用 SHOW SLAVE STATUS 检查复制状态;。
- 预期输出:Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes,表示同步成功。
以上是如何在 MySQL 复制中重新同步不匹配的数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!