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冲突,如何解决?