master node 1
1.主要配置
[mysqld] server-id=1 log-bin=mysql-bin binlog_format=mixed expire_logs_days=14 relay_log=mysql-relay-bin # 忽略不需要同步的数据表 replicate_wild_ignore_table=mysql.* replicate_wild_ignore_table=information_schema.* replicate_wild_ignore_table=performance_schema.* # 设置自增的增量 auto_increment_increment=2 # 设置自增起始值,n 台主库时自增值为 n auto_increment_offset=1 # 此项为 ON 时主库的 binlog 会同步到从库的 binlog # 否则只能在从库的 relay-binlog 查看主库的变动 log_slave_updates=on
2.创建授权账户,用于 master2 访问 master1
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;
3.记录 master1 的 File 和 Position 用于 master2
SHOW MASTER STATUS\G;
4.设置同步
CHANGE MASTER TO MASTER_HOST = '10.0.0.2', MASTER_PORT = 3306, MASTER_USER = 'slave', MASTER_PASSWORD = '123456', MASTER_LOG_FILE ='mysql-bin.000021', MASTER_LOG_POS = 6352; # 启动从机复制 START SLAVE; # 查看从机 Slave_IO_Running 和 Slave_SQL_Running 状态 SHOW SLAVE STATUS\G;
master node 2
如果同步前 master1 已有数据,则需要将 master1 数据导入 master2 后再启动同步,在同步前双方数据应保持一致。
1.主要配置
[mysqld] server-id=2 log-bin=mysql-bin binlog_format=mixed expire_logs_days=14 relay_log=mysql-relay-bin replicate_wild_ignore_table=mysql.* replicate_wild_ignore_table=information_schema.* replicate_wild_ignore_table=performance_schema.* auto_increment_increment=2 auto_increment_offset=2 log_slave_updates=on
2.创建授权账户,用于 master1 访问 master2
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;
3.记录 master2 的 File 和 Position 用于 master1
SHOW MASTER STATUS\G;
4.设置同步
CHANGE MASTER TO MASTER_HOST = '10.0.0.3', MASTER_PORT = 3306, MASTER_USER = 'slave', MASTER_PASSWORD = '123456', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS = 326; # 启动从机复制 START SLAVE; # 查看从机 Slave_IO_Running 和 Slave_SQL_Running 状态 SHOW SLAVE STATUS\G;
相关链接:
mysql 主从复制:https://www.lanseyujie.com/post/mysql-master-slave-replication.html
本文标题:MySQL 双主同步
版权声明:本文使用「署名 4.0 国际」创作共享协议,转载或使用请遵守署名协议。
上一篇:MySQL 主从复制