Bootstrap

mysql主从 双yes_Mysql双主从同步配置(二)

接上节,本节需要做的是配置M-M的replication,主主同步其实可以简单的看成两台实例间同时互相做主从,配置步骤如下:

1、两台Master都要进行账户授权,但由于上一节我们在两台主机上针对所有ip(‘%’)进行了授权,所以这一步我们可以省略,如果之前只针对单IP进行授权的同学,需要再进行一次Master间的互授权

mysql>> GRANT REPLICATION SLAVE ON *.* TO 'user'@'ip' IDENTIFIED BY 'password';

2、修改两个数据库的my.conf文件,加入以下配置:

因为两台均为master,所以为了避免自增主键冲突,需要设置自增开始值一个为1,一个为2,同时每次递增2,保证自增主键不冲突。

Master A:

log-slave-updates

sync_binlog=1

auto_increment_offset=1

auto_increment_increment=2

slave-skip-errors=all #过滤掉一些没啥大问题的错误

Master B:

log-slave-updates

sync_binlog=1

auto_increment_offset=2

auto_increment_increment=2

slave-skip-errors=all #过滤掉一些没啥大问题的错误

3、分别重启Master A 和 Master B的mysql服务

4、分别查看两个实例的master状态

Master A:

mysql> flush tables with read lock;#防止进入新的数据

Query OK, 0 rows affected (0.00 sec)

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000007

Position: 438

Binlog_Do_DB: db_rocky

Binlog_Ignore_DB: mysql

1 row in set (0.00 sec)

Master B:

mysql> flush tables with read lock;#防止进入新的数据

Query OK, 0 rows affected (0.00 sec)

mysql> show master status\G;

*************************** 1. row

***************************

File: mysql-bin.000008

Position: 107

Binlog_Do_DB: db_rocky

Binlog_Ignore_DB: mysql

1 row in set (0.01 sec)

5、分别在两个实例上执行change master指令,指定同步位置:

Master A:

mysql> change master to master_host='192.168.4.87',master_user='water',master_password='cdio2010',

-> master_log_file='mysql-bin.000008',master_log_pos=107;

Query OK, 0 rows affected (0.05 sec)

Master B:

mysql> change master to master_host='192.168.4.85',master_user='water',master_password='cdio2010',

-> master_log_file='mysql-bin.000007',master_log_pos=438;

Query OK, 0 rows affected (0.05 sec)

注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定

6、解锁两个数据库实例的表和启动从服务器线程:

mysql> unlock tables;

Query OK, 0 rows affected (0.00 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

7、分别查看从服务器状态

Master A上

mysql> show slave status\G;

*************************** 1. row ***************************

主要关注以下 2 个参数:

...

...

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

...

...

Master B上:

mysql> show slave status\G;

*************************** 1. row ***************************

主要关注以下 2 个参数:

...

...

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

...

...

接下去,分别在两台实例的test1库中进行操作,发现能同步到另外一台Master上,至此,双主从复制方案部署成功!

;