配置主库

修改headquarters上的/etc/my.cnf文件

  1. #主服务器唯一ID
  2. server-id=1
  3. #启用二进制日志
  4. log-bin=mysql-bin
  5. # 设置不要复制的数据库(可设置多个)
  6. binlog-ignore-db=mysql
  7. binlog-ignore-db=information_schema
  8. #设置需要复制的数据库
  9. binlog-do-db=msb
  10. #设置logbin格式
  11. binlog_format=STATEMENT
  12. # 在作为从数据库的时候, 有写入操作也要更新二进制日志文件
  13. log-slave-updates
  14. #表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1, 取值范围是1 .. 65535
  15. auto-increment-increment=2
  16. # 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
  17. auto-increment-offset=1

修改master上的/etc/my.cnf文件

#主服务器唯一ID
server-id=2
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=msb
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
auto-increment-offset=2

重启两台服务器的MySQL服务

service mysqld restart

配置从库

修改node1上的/etc/my.cnf文件

#从服务器唯一ID
server-id=3
#启用中继日志
relay-log=mysql-relay

修改node2上的/etc/my.cnf文件

#从服务器唯一ID
server-id=4
#启用中继日志
relay-log=mysql-relay

重启两台服务器的MySQL服务

service mysqld restart

搭建双主双从

  • 查看两台主机的状态
    headquarters
    双主双从 - 图1
    master
    双主双从 - 图2

    show master status;
    
  • 在node1上执行要复制的主机

    CHANGE MASTER TO MASTER_HOST='192.168.1.62',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
    
  • 在node2上执行要复制的主机

    CHANGE MASTER TO MASTER_HOST='192.168.1.61',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
    
  • 启动两个从机的slave并且查看状态
    当执行完成之后,会看到两个关键的属性Slave_IO_Running,Slave_SQL_Running,当这两个属性都是yes的时候,表示主从复制已经准备好了,可以进行具体的操作了

    start slave;
    show slave status\G;
    

主库的相互复制

-- 在headquarters上执行
CHANGE MASTER TO MASTER_HOST='192.168.1.62',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
-- 开启slave
start slave;
-- 查看状态
show slave status\G;
-- 在master上执行
CHANGE MASTER TO MASTER_HOST='192.168.1.61',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
-- 开启slave
start slave;
-- 查看状态
show slave status\G;

双主双从验证

在headquarters上执行如下sql语句:

CREATE DATABASE IF NOT EXISTS `user-center` DEFAULT CHARACTER SET = utf8mb4;
Use `user-center`;

双主双从 - 图3

其他

  • 停止从服务复制

    stop slave
    
  • 重新配置组从

    stop slave
    reset master