解决 MySQL 复制中的数据库不匹配
在 MySQL 复制设置中,主服务器和从服务器的数据库内容之间可能会发生不匹配如果从机长时间断开连接然后重新连接。要在这种情况下重新同步数据库,可以采取以下步骤:
在主服务器上:
- 通过执行 RESET MASTER 重置主服务器;.
- 使用 FLUSH TABLES WITH READ 锁定表以进行读操作LOCK;.
- 使用 SHOW MASTER STATUS; 获取主服务器当前的复制状态。复制 Master_Log_File 和 Master_Log_Pos 返回的值。
- 使用 mysqldump -u root -p --all-databases > 将整个数据库从 master 导出到转储文件/path/mysqldump.sql.
在从属服务器:
- 使用 STOP SLAVE 停止从属服务器的复制过程;.
- 使用 mysql -uroot -p
- 通过执行 RESET SLAVE 重置从站的复制配置;。
- 使用 CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001 更新从站的复制配置以匹配主站的当前位置', MASTER_LOG_POS=98;。将 'mysql-bin.000001' 和 '98' 替换为从主服务器上执行的 SHOW MASTER STATUS 命令获得的值。
- 使用 START SLAVE; 再次启动从属服务器的复制过程。
验证:
确认成功同步,执行SHOW SLAVE STATUS;在从服务器上。输出应将 Slave_IO_Running 和 Slave_SQL_Running 显示为 Yes。
以上是Slave断线后如何重新同步MySQL复制?的详细内容。更多信息请关注PHP中文网其他相关文章!