您的位置:首页 > 数据库 > MySQL

Mysql双主从同步配置(二)

2015-06-25 15:00 666 查看

接上节,本节需要做的是配置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上,至此,双主从复制方案部署成功!

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: