验证主从同步状态

原从库执行

show slave status \G;

Slave_IO_Running: Yes && Slave_SQL_Running: Yes 均为yes即正常同步状态

准备主从切换

设置原主库为只读模式

# 全局读锁定(写操作阻塞,读操作正常)
FLUSH TABLES WITH READ LOCK;
# 设置只读模式
SET GLOBAL read_only = ON;

设置原从库停止复制

stop slave;

重置原从库的复制信息

reset slave all;

提升原从库为主库

SET GLOBAL read_only = OFF;

原主库解除锁表

unlock tables;

配置原主库为从库

原从库配置slave用户

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'%' IDENTIFIED BY 'GrantT^Slave130';
flush privileges;

原从库刷新日志并查询Master主库(自己)状态

flush logs;
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| slave-bin.000007 | 107 | | |
+------------------+----------+--------------+------------------+

原主库指向新主库

CHANGE MASTER TO
MASTER_HOST='192.168.209.131',
MASTER_USER='repl',
MASTER_PASSWORD='GrantT^Slave130',
MASTER_LOG_FILE='slave-bin.000007',
MASTER_LOG_POS=107;

启动复制

START SLAVE;

验证复制状态

SHOW SLAVE STATUS\G