准备工作
- 配置双主架构的MySQL服务器需要事先进行数据同步并停止MySQL服务
搭建双主架构-互为主从
-
(服务1)编辑配置文件vim /etc/my.cnf
-
(服务1)启动MySQL服务
systemctl start mysqld
-
(服务1)创建用于双主架构的MySQL账号
CREATE USER 'repl'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
-
(服务2)编辑配置文件vim /etc/my.cnf
-
(服务2)启动MySQL服务
systemctl start mysqld
-
(服务2)如果搭建过主从,先停止从属
stop replica;
(服务2)设定指向服务1的数据节点
CHANGE MASTER TO
MASTER_HOST = '[服务1的IP地址]',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'binlog.000002',
MASTER_LOG_POS = 1229,
MASTER_CONNECT_RETRY = 60,
MASTER_AUTO_POSITION = 0;
注:MASTER_LOG_FILE和MASTER_LOG_POS的值需要在服务1执行show master status;获取
-
(服务2)启动主从复制
start replica;
(服务2)查看主从状态
show replica status\G
确认主从是否正常
Replica_IO_Running:Yes
Replica_SQL_Running:Yes
Last_IO_Error/Last_SQL_Error:
-
(服务2)创建用于双主架构的MySQL账号
CREATE USER 'repl'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
-
(服务1)设定指向服务2的数据节点
CHANGE MASTER TO
MASTER_HOST = '[服务2的IP地址]',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'binlog.000002',
MASTER_LOG_POS = 1229,
MASTER_CONNECT_RETRY = 60,
MASTER_AUTO_POSITION = 0;
注:MASTER_LOG_FILE和MASTER_LOG_POS的值需要在服务2执行show master status;获取
-
(服务1)启动主从复制
start replica;
(服务1)查看主从状态
show replica status\G
确认主从是否正常
Replica_IO_Running:Yes
Replica_SQL_Running:Yes
Last_IO_Error/Last_SQL_Error:
-
测试
在服务1中执行增删改,观察服务2是否同步
在服务2中执行增删改,观察服务1是否同步