您的位置:首页 > 数据库 > MySQL

Mysql创建双主复制

2019-05-02 11:28 34 查看

操作环境

操作系统: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双主配置

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: