Mysql主從切換
一、主從切換
n 1 環境準備
[root@mysqlserver ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
實驗拓撲如下:
n 2 過程模擬實現
n 2.1 主庫鎖表(GTID中主庫設置全局只讀)
mysql> set @@global.read_only=ON;
n 2.2 從庫停止slave模式,創建授權用戶,此時從庫已經變爲主庫。
注意:如果幾個從庫的server-id一樣,當其中一個從庫切換爲主庫時,其餘從庫的server-id應該修改爲主庫不一樣即可,否則同步失敗。
mysql> set global validate_password_policy=0;
mysql> grant replication slave on *.* toli@'192.168.200.%' identified by 'abc123ABC';
n 2.3 “主庫”解除鎖表。
mysql> set @@global.read_only=OFF;
n 2.4 “主庫”(實際上是從庫)用change master to連接”從庫”(實際上是主庫)
mysql> change master tomaster_host='192.168.200.136',master_user='li',master_password='abc123ABC',master_auto_position=1;
mysql> show slave status\G;
如果之前是從庫,而現在仍然是從庫,需要先關閉從庫,最好重置下。
mysql> resetslave;
mysql> changemaster tomaster_host='192.168.200.136',master_user='li',master_password='abc123ABC',master_auto_position=1;
mysql> startslave;
mysql> showslave status\G;
二、主宕從換爲主
如果主庫宕掉,從庫可以直接切換爲主庫,實現方法和上述類似。
n 1 “從庫”(需要馬上切換爲主庫的從庫)創建授權用戶
mysql> stop slave;
mysql> set global validate_password_policy=0;
mysql> grant replication slave on *.* toli@'192.168.200.%' identified by 'abc123ABC';
n 2 從庫使用change master to連接主庫
mysql> stop slave;
mysql> reset slave;
mysql> change master tomaster_host='192.168.200.136',master_user='li',master_password='abc123ABC',master_auto_position=1;
mysql> start slave;
mysql> show slave status\G;
如果從庫的server-id都一樣,則需要更改server-id,使得主從的server-id必須不一致。一樣則不需要更改。