当前位置: 代码迷 >> MySQL >> Mysql双主从同步配置(2)
  详细解决方案

Mysql双主从同步配置(2)

热度:104   发布时间:2016-05-05 16:58:35.0
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上,至此,双主从复制方案部署成功!

?

  相关解决方案