准备工作

  1. 配置双主架构的MySQL服务器需要事先进行数据同步并停止MySQL服务
  2. 搭建双主架构-互为主从

  3. (服务1)编辑配置文件vim /etc/my.cnf
  4. (服务1)启动MySQL服务
    systemctl start mysqld
  5. (服务1)创建用于双主架构的MySQL账号
    CREATE USER 'repl'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  6. (服务2)编辑配置文件vim /etc/my.cnf
  7. (服务2)启动MySQL服务
    systemctl start mysqld
  8. (服务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;获取
  9. (服务2)启动主从复制
    start replica;
    (服务2)查看主从状态
    show replica status\G
    确认主从是否正常
    Replica_IO_Running:Yes
    Replica_SQL_Running:Yes
    Last_IO_Error/Last_SQL_Error:
  10. (服务2)创建用于双主架构的MySQL账号
    CREATE USER 'repl'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  11. (服务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;获取
  12. (服务1)启动主从复制
    start replica;
    (服务1)查看主从状态
    show replica status\G
    确认主从是否正常
    Replica_IO_Running:Yes
    Replica_SQL_Running:Yes
    Last_IO_Error/Last_SQL_Error:
  13. 测试
    在服务1中执行增删改,观察服务2是否同步
    在服务2中执行增删改,观察服务1是否同步