操作环境
操作系统:centos7.6
数据库:mysql 5.7
1. 配置my.cnf
centos命令:
vi /etc/my.cnf 打开编缉
在[mysqld]下面添加以下代码
数据库A:
server-id=1
log-bin=master-bin
log-slave-updates=true
auto_increment_increment=2
auto_increment_offset=1
数据库B:
server-id=2
log-bin=master-bin
log-slave-updates=true
auto_increment_increment=2
auto_increment_offset=2
说明:
server_id : 用于标识不同的数据库服务器
log-bin :二进制日志文件名
log-slave-updates :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要。
auto-increment-offset :该服务器自增列的初始值。
auto-increment-increment :该服务器自增列增量。
2. 互相授权
-
配置好my.cnf后,需要重启数据库
service mysqld restart
-
登录数据库:
mysql -u admin -p
-
互相授权:
数据库A:
grant replication slave on *.* to 'slave'@'192.168.1.114' identified by 'Admin123!';
flush privileges;
数据库B:
grant replication slave on *.* to 'slave'@'192.168.1.112' identified by 'Admin123!';
flush privileges;
-
分别查看两个数据库master的状态
show master status;
记录下File和Position -
互相设置同步日志节点
数据库A:mysql> change master to ->master_host='192.168.1.114', ->master_port=3306, ->master_user='slave', ->master_password='Admin123!', ->master_log_file='master-bin.000001, ->master_log_pos=154;
数据库B:
mysql> change master to ->master_host='192.168.1.112', ->master_port=3306, ->master_user='slave', ->master_password='Admin123!', ->master_log_file='master-bin.000001, ->master_log_pos=154;
-
两台服务器启动slave
mysql> start slave;
-
查看slave状态
mysql> show slave status \G;