文章目录
环境
主机 IP 系统版本
mysql01 192.168.17.131 CentOS Linux release 7.3
mysql02 192.168.17.132 CentOS Linux release 7.3
可以基于binlog,也可以基于gtid
搭建方式就是分别在两台服务器上做同步。
搭建步骤
以gtid方式搭建
mysql01修改配置文件
mysql01修改配置文件
[root@mysql01 ~]# vi /etc/my.cnf
validate_password=off
character_set_server=utf8
server-id=101
log-bin=mysql-bin
enforce_gtid_consistency=on
gtid_mode=on
解决主键冲突
auto_increment_increment=1 # 几台主库,步长就等于几
auto_increment_offset=2 # 起始值
mysql02修改配置文件
[root@mysql02 ~]# vi /etc/my.cnf
validate_password=off
character_set_server=utf8
server-id=102
log-bin=mysql-bin
enforce_gtid_consistency=on
gtid_mode=on
解决主键冲突
auto_increment_increment=2 # 几台主库,步长就等于几
auto_increment_offset=2 # 起始值
解释:2个主
mysql01主键id mysql02主键
起始值: 1 2
步长: 2 2
新值1: 1+2=3 2+2=4
新值2: 3+2=5 4+2=6
重启mysql
mysql01重启
[root@mysql01 ~]# systemctl restart mysqld
mysql02重启
[root@mysql02 ~]# systemctl restart mysqld
创建同步用户
mysql01创建同步用户
mysql> grant replication slave,replication client on *.* to 'gtid'@'%' identified by '000000';
mysql> flush privileges;
mysql02创建同步用户
mysql> grant replication slave,replication client on *.* to 'gtid'@'%' identified by '000000';
mysql> flush privileges;
执行同步
mysql01执行同步
CHANGE MASTER TO
MASTER_HOST='192.168.17.132',
MASTER_USER='gtid',
MASTER_PASSWORD='000000',
MASTER_AUTO_POSITION=1; # 自动同步不用关心日志的位置
mysql02执行同步
CHANGE MASTER TO
MASTER_HOST='192.168.17.131',
MASTER_USER='gtid',
MASTER_PASSWORD='000000',
MASTER_AUTO_POSITION=1; # 自动同步不用关心日志的位置
启动/查看slave
mysql01启动/查看状态
mysql> start slave;
mysql> show slave status\G;
mysql02启动/查看状态
mysql> start slave;
mysql> show slave status\G;