MySQL进阶运维与架构从链式复制到主从复制
31.5 切换链式复制到主从复制
如果MySQL当前的复制模式为链式复制模式,可以将其转化为MySQL的主从复制模式。本节就简单介绍一下如何将MySQL的链式复制模式转化为主从复制模式。
1.服务器规划
首先需要进行服务器规划,本节中的服务器规划与31.3.1节中的服务器规划相同,不再赘述。
2.切换复制模式
(1)在binghe152服务器上,停止从库的运行,并查看主库的状态。
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000008 | 6924 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
结果显示,此时binghe152服务器上的主库二进制日志文件为mysql-bin.000008,二进制日志文件的位置为6924。
(2)在binghe153服务器上,确保从库的数据已经和binghe152服务器上的MySQL数据库同步。
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.175.152
Master_User: binghe153
Master_Port: 3306
Relay_Master_Log_File: mysql-bin.000008
Exec_Master_Log_Pos: 6924
Seconds_Behind_Master: 0
##############省略部分输出结果#####################
binghe153服务器上的Relay_Master_Log_File为mysql-bin.000008,Exec_Master_Log_Pos为6924,Seconds_Behind_Master为0。说明binghe153服务器上的MySQL数据已经和binghe152服务器上的MySQL数据同步。
(3)在binghe152服务器上,查看binghe151服务器上的主库的二进制日志和二进制日志的位置坐标。
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.175.151
Master_User: binghe152
Master_Port: 3306
Relay_Master_Log_File: mysql-bin.000007
Exec_Master_Log_Pos: 6977
##############省略部分输出结果#####################
binghe152服务器上的Relay_Master_Log_File为mysql-bin.000007,Exec_Master_Log_Pos为6977。说明binghe151服务器上的主库当前的二进制日志文件为mysql-bin.000007,二进制日志文件的位置为6977。
(4)在binghe153服务器上,停止从库的运行,并将主库指向binghe151服务器。
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.175.151',
-> MASTER_PORT=3306,
-> MASTER_USER='binghe153',
-> MASTER_PASSWORD='binghe153',
-> MASTER_LOG_FILE='mysql-bin.000007',
-> MASTER_LOG_POS=6977;
Query OK, 0 rows affected, 2 warnings (0.03 sec)
(5)在binghe152服务器上启动从库,并查看从库的运行状态。
mysql> START SLAVE;
Query OK, 0 rows affected (0.10 sec)
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.175.151
Master_User: binghe152
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 6977
Relay_Log_File: relay-bin.000007
Relay_Log_Pos: 322
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Exec_Master_Log_Pos: 6977
##############省略部分输出结果#####################
(6)在binghe153服务器上启动从库,并查看从库的运行状态。
mysql> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.175.151
Master_User: binghe153
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 6977
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 322
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Exec_Master_Log_Pos: 6977
##############省略部分输出结果#####################
此时,已经成功将MySQL的链式复制模式转化为主从复制模式。
3.测试主从复制模式
主从复制模式的测试方式与31.3.3节中的测试方式相同,不再赘述。
- 点赞
- 收藏
- 关注作者
评论(0)