MySQL双主复制详解

master-master复制的两台服务器,既是master,又是另一台服务器的slave本质上互为主从。

二.验证环境 1. 操作系统

CentOS-6.7-x86_64

2. MySQL版本

MySQL版本是5.6.36:https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36.tar.gz

3. 拓扑图

MySQL双主复制详解

采用VMware ESXi虚拟出的2台服务器master/backup,地址10.11.4.196/197;

MySQL已安装并配置完成,可参考:中的MySQL部分;

主从配置可参考:

三.master配置 1. my.cnf配置

#在主从复制配置文件的基础上增加3个参数项 [root@master ~]# vim /etc/my.cnf [mysqld] server_id = 196 log_bin = /mysql/mysql-bin max_binlog_size = 1G sync_binlog = 0 binlog-format = mixed binlog-ignore-db = information_schema,mysql,performance_schema,test # 中继日志执行之后将变化写入自己的binlog文件,即从库从主库复制的文件默认不会写入自己的binlog文件,需要开启后才生效; # 通常此从库同时作为主库时,即链式复制时,需要开启此参数; # 默认参数为0,表示OFF, 设置为1表示ON,参数可直接带OFF或ON. log-slave-updates = 1 # 做双主时,每台数据库都可能在同一个表中插入数据,如果表有一个自动增长的主键,那么就会在多服务器上出现主键冲突;解决方案是让每个数据库的自增主键不连续; # 参数auto_increment_increment表示自增值,一般有n台主库,自增值就采用n; # auto_increment_offset表示起始序号,一般offset不超过自增值,且各主库的自增值不一样. auto_increment_increment = 2 auto_increment_offset = 1 #使用--skip-slave-start启动,可以不立即启动从库的复制线程,方便后续配置操作 [root@master ~]# service mysqld stop [root@master ~]# mysqld_safe --skip-slave-start & 

2. 创建复制用户

#在主库上10.11.4.0网段的主机授权,从库用户repl获得REPLICATION SLAVE权限 [root@master ~]# mysql -uroot -p Enter password: mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.11.4.%' IDENTIFIED BY 'repl'; mysql> flush privileges;

3. 获取master binlog文件名与偏移量

[root@master ~]# mysql -uroot -p Enter password: mysql> show master status;

获取到binlog文件名与偏移量,可为从库设定同步复制点。

4. iptables

[root@master ~]# vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
[root@master
~]# service iptables restart

四.backup配置 1. my.cnf配置

#将主库服务器上的my.cnf文件拷贝到从库服务器 [root@master ~]# scp /usr/local/mysql/my.cnf backup:/usr/local/mysql/ root@backup's password: #修改server id值与主库服务器不同; #auto_increment_offset参数,各服务器的offset值应不一样 [root@backup ~]# vim /etc/my.cnf [mysqld] server_id = 197 auto_increment_increment = 2 auto_increment_offset = 2 #使用--skip-slave-start启动,可以不立即启动从库的复制线程,方便后续配置操作 [root@backup ~]# service mysqld stop [root@backup ~]# mysqld_safe --skip-slave-start &

2. 创建复制用户

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ab6db0d51e7c1bfe625f5d03fd9952c0.html