Mysql创建双主复制

操作环境

操作系统: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. 互相授权

  1. 配置好my.cnf后,需要重启数据库 service mysqld restart

  2. 登录数据库:mysql -u admin -p

  3. 互相授权:
    数据库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;

  4. 分别查看两个数据库master的状态
    show master status;
    记录下File和Position

  5. 互相设置同步日志节点
    数据库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;
    
  6. 两台服务器启动slave
    mysql> start slave;

  7. 查看slave状态
    mysql> show slave status \G;

至此 已完成mysql双主配置

猜你喜欢

转载自blog.csdn.net/qq_38253703/article/details/89743509