Mysql主从复制配置

Mysql主从复制配置

准备两台服务器,服务器的IP地址分别为192.168.56.101、192.168.56.102,在两台服务器上分别使用Docker部署Mysql,Master部署在192.168.56.101服务器,Slave部署在192.168.56.102服务器,实现Mysql主从同步功能。

一、Docker部署Mysql
  • Master节点

    sudo docker run -p 3306:3306 --name mysql-master \
    -v /mydata/mysql/master/log:/var/log/mysql \
    -v /mydata/mysql/master/data:/var/lib/mysql \
    -v /mydata/mysql/master/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
  • Slave节点

    sudo docker run -p 3306:3306 --name mysql-slave \
    -v /mydata/mysql/slaver/log:/var/log/mysql \
    -v /mydata/mysql/slaver/data:/var/lib/mysql \
    -v /mydata/mysql/slaver/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
二、Mysql配置文件
  • Master节点的my.cnf配置

    cd /mydata/mysql/master/conf
    vim my.cnf
    

    my.cnf配置文件的内容

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    # skip-name-resolve一定要加,否则会很慢
    skip-name-resolve
    
    server_id=1
    log-bin=mysql-bin
    # Master可读可写
    read-only=0
    # 指定需要同步的数据库
    binlog-do-db=mall_ums
    binlog-do-db=mall_pms
    binlog-do-db=mall_oms
    binlog-do-db=mall_sms
    binlog-do-db=mall_wms
    binlog-do-db=mall_admin
    
    # 不主从复制的数据库
    replicate-ignore-db=mysql
    replicate-ignore-db=sys
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema
    
  • Slave节点的my.cnf配置

    cd /mydata/mysql/slave/conf
    vim my.cnf
    

    my.cnf配置文件的内容

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    # skip-name-resolve一定要加,否则会很慢
    skip-name-resolve
    
    server_id=2
    log-bin=mysql-bin
    # Slave只读
    read-only=1
    # 指定需要同步的数据库
    binlog-do-db=mall_ums
    binlog-do-db=mall_pms
    binlog-do-db=mall_oms
    binlog-do-db=mall_sms
    binlog-do-db=mall_wms
    binlog-do-db=mall_admin
    
    # 不主从复制的数据库
    replicate-ignore-db=mysql
    replicate-ignore-db=sys
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema
    

    注意:Master和Slave的server_id必须不一样

    重启Master和Slave节点Mysql容器

    docker restart mysql-master
    docker restart mysql-slave
    
三、Mysql主从配置

进入Mysql容器内部,或使用数据库连接工具如Navicat连接数据库(需要关闭防火墙,或者开放3306端口)

  • Master节点Mysql执行

    # 在mysql命令行中
    GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456'
    
    SHOW MASTER STATUS;
    
  • Slave节点Mysql执行

    # 设置主从链接
    change master to
    master_host='192.168.56.101',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3306;
    
    start slave;
    show slave status;
    

    如果执行结果如下,表示主从复制配置成功:

在这里插入图片描述

主从复制测试

在Master节点的Mysql创建mall_ums、mall_pms、mall_oms、mall_sms、mall_wms、mall_admin数据库,并在数据库中创建表,向表中加入数据,刷新Slave节点的Mysql,可以看到数据库,以及表和表中的数据都被自动同步。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值