mysql主从切换

Mysql主从切换

 

一、主从切换

n 1 环境准备

[root@mysqlserver ~]# cat /etc/redhat-release

CentOS release 6.6 (Final)

实验拓扑如下:

wKiom1fPqsbQmRbBAACDDWfZkKQ777.png-wh_50

n 2 过程模拟实现

n 2.1 主库锁表(GTID中主库设置全局只读)

mysql> set @@global.read_only=ON;

n 2.2 从库停止slave模式,创建授权用户,此时从库已经变为主库。

注意:如果几个从库的server-id一样,当其中一个从库切换为主库时,其余从库的server-id应该修改为主库不一样即可,否则同步失败。

mysql> stop slave;

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> start slave;

mysql> show slave status\G;

如果之前是从库,而现在仍然是从库,需要先关闭从库,最好重置下。

mysql> stop slave;

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必须不一致。一样则不需要更改。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章