參考上一篇博客 MySQL主從同步http://blog.csdn.net/juded/article/details/54600294
從庫狀態確認
確保從庫執行完了relay log更新後,停止IO_THREAD線程。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
...........
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...........
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O
...........
停止從庫IO_THREAD線程
mysql> stop slave io_thread;
Query OK, 0 rows affected (0.06 sec)
從庫上升爲主庫
mysql> grant replication slave on *.* to 'repl'@'%' identified by 'repl';
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
mysql> reset master;
Query OK, 0 rows affected (0.06 sec)
mysql> reset slave all;
mysql>show slave status\G
Empty set (0.00 sec)
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin-2.000001 | 639| db1,db2 | |
+------------------+----------+--------------+------------------+
reset slave all 命令會刪除從庫的 replication 參數,之後 show slave status\G 的信息返回爲空。
主庫上升爲從庫
mysql> change master to
-> master_host='192.168.2.94',
-> master_port=3306,
-> master_user='repl',
-> master_password='repl',
-> master_log_file='mysql-bin-2.000001',
-> master_log_pos=639;
Query OK, 0 rows affected, 2 warnings (0.34 sec)
mysql> start slave;
Query OK, 0 rows affected (0.04 sec)