760176104 发表于 2018-9-27 14:03:56

MySQL 5.5 主从双向同步

  在Red Hat Enterprise Linux平台,利用MySQL主从同步原理,实现MySQL双向同步
  
MySQL版本:5.5.28
  
操作系统:RHEL 5.8 32bit
  

  
Server1:192.168.1.1
  
配置:my.cnf
  


[*]server-id    = 1
[*]binlog-do-db = testdb
[*]binlog-ignore-db = mysql
[*]log-slave-updates
[*]replicate-do-db = testdb
[*]replicate-ignore-db = mysql
  

  同步testdb数据库,这里不对mysql数据库进行同步
  
新增同步用户:
  


[*]grant replication slave on *.* to slaveuser@192.168.1.2 identified by '123456';
  

  启动Sever1;
  


[*]service mysql start
  

  查看MySQL同步binlog文件名以及pos值:
  


[*]show master status;
  


  
Server2:192.168.1.2
  
配置:my.cnf
  


[*]server-id    = 2
[*]binlog-do-db = testdb
[*]binlog-ignore-db = mysql
[*]log-slave-updates
[*]replicate-do-db = testdb
[*]replicate-ignore-db = mysql
  

  与Sever1配置基本相同,只是server-id不同,而且不能相同,另外记得在配置区域里配置开启二进制日志记录:log-bin = mysql-bin
  
新增同步用户:
  


[*]grant replication slave on *.* to slaveuser@192.168.1.1 identified by '123456';
  

  启动Server2:
  


[*]service mysql start
  

  配置同步:
  


[*]mysql>change master to master_host='192.168.1.1',
[*]mysql>master_user='slaveuser',
[*]mysql>master_password='123456',
[*]mysql>master_log_file='mysql-bin.000020',
[*]mysql>master_log_pos=107;
[*]mysql>slave start;
[*]mysql>show slave status\G;
  

  MySQL的5.5版本已经不支持在my.cnf中配置同步的主机信息了,即master-host等字段,否则MySQL会启不动,这点要注意下,网上也有很多教程,留意下不同版本的区别。
  查看下状态:

  标识为红色的部分都为yes则表示正常。如果出现Slave_SQL_Running:connecting,可能是没有对同步用户进行授权,到Server1检查下授权用户是否正常。
  手动同步命令:
  


[*]mysql>load data from master
  

  到这里就是配置主从同步了,再到Server1上,以Server2为主,Server1为从进行同步,就实现双向同步了。过程一样的,不再详细说明了。
  测试说明:
  1.主要测试的是对同步数据库的读写测试,分别在两台机器上读写,看是否同步;
  2.测试完了读写同步,可以模拟下故障测试。比如说关闭掉其中一个数据库,再到另一个正常的数据上写入数据,然后再开启模拟的故障数据库,看是否会更新数据。
  测试过程就不详述了。


页: [1]
查看完整版本: MySQL 5.5 主从双向同步