mysql主主复制

1:两台mysql服务器主主复制大致图

2:大致的思路

(1)两台mysql的my.cnf都配置二进制日志和relay日志

(2)两台都授权一个可复制的账号密码

(3)互相把对面设计master

3: 实现过程如下[类似主从复制]

   (1)配置192.168.109.121服务器中my.cnf

       vim /etc/my.cnf

       添加如下:

       log-bin=mysql-bin  #开启二进制日志

       binlog-format=minx #指定日志格式 有statment ,row minx

       service-id=121 #指定唯一msyql服务器id

       relay-log=mysql-relay #开启从服务日志

   (2)重启slave: start slave;

   (3)建立授权账号

       先登录mysql: ./usr/local/mysql/bin/mysql -uroot -p

       授权复制账号:grant  replication clicent,replicattion relay  on  *.* to 'repl'@'192.168.%.%' identified by 'relp'

   (4)配置从服务器[必须登录mysql在执行]

       use master to

       master_host='192.168.109.113',

       master_user='repl',

       master_password='repl',

       master_log_file='msyql-bin.000005',#必须先查看192,168.109.113中读取的是哪个二进制文件[show master status G  查看]

       master_log_pos='280'; #必须先查看192,168.109.113中读取二进制文件从第几行读取[show master status G  查看]

   (5)配置192.168.109.113服务器中my.cnf

       跟配置121服务器一样的步骤。只要注意配置从服务器的时候master_host,master_log_file,master_log_pos这三个参数需要改动即     可。

4:测试

    (1)先在121服务器中新建一个数据库,然后再113中查看是否显示

    (2)然后再113服务器中新建一个数据库,然后再121中查看是否显示

    (3)如果发现没有同步,可能出现原因。

     1:检查配置

     2:没有关闭防火墙   service iptables stop

5: 疑问题?

  当两台mysql主服务器数据已经同步了,有一个表中的主键为10.

现在刚才好有两条数据同时都需要插入到113和121服务中。

那么113服中数据表中数据ID为11,而121中数据表的ID也为11,

两台mysql主服务器在同步,则会产生ID冲突,如何解决?

              

原文地址:https://www.cnblogs.com/hgj123/p/5036597.html