主从切换需先确保数据一致,停止原从库复制并提升为新主库,再将原主库配置为从库并更新应用连接。MySQL主从切换是指将当前的主库(Master)和从库(Slave)角色互换,通常在主库出现故障或计划内维护时使用。切换后,原从库变为新的主库,原主库可恢复为新从库或其他用途。以下是标准的主从切换操作方法。
在开始切换前,必须确认主从数据已完全同步,避免数据丢失。
SHOW SLAVE STATUS\G
Yes:Slave_IO_Running: YesSlave_SQL_Running: Yes
Seconds_Behind_Master 为 0,表示无延迟。在原从库(即将提升为主库)上停止复制:
STOP SLAVE;
如果需要保留复制信息以备后续恢复,可记录当前的主库二进制日志位置:
SHOW SLAVE STATUS\G
记下 Master_Log_File 和 Exec_Master_Log_Pos。
RESET SLAVE ALL;若原主库恢复正常,可将其配置为新主库的从库:
CHANGE MASTER TO
MASTER_HOST='new_master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='repl_password',
MASTER_LOG_FILE='mysql-bin.xxxxxx',
MASTER_LOG_POS=xxxxxx;
START SLAVE;
SHOW SLAVE STATUS 验证状态是否正常。修改应用程序的数据库连接配置,将写操作指向新的主库。建议使用中间件(如 ProxySQL、MaxScale)或 DNS 切换来降低影响。
log-bin 和 server-id 唯一。gtid_purged 和 gtid_executed 快速定位同步点。