mysql主从同步配置

前言

为了保障断网后业务正常运转,部署一台mysql从服务器在本地。最近几天不是很忙,在客户的测试服务器上搭建测试,记录。

1.mysql初始化

  • 保证大版本号统一

  • 初始化,保证同步库或表数据一致

  • 测试版本5.7.18

2.主服务配置

  • 修改/etc/mysql/my.cnf,添加

    
    [mysqld]
    server-id=1
    #启用二进制日志
    log-bin=mysql-bin
    #复制的数据库名,如果复制多个数据库,使用逗号分割
    binlog-do-db=db201911
    sync_binlog=1
    
    
  • 创建用户,并授权slave

    grant replication slave on *.* to '用户名'@'主机' identified by '密码';
    
  • 获取File和Position,这两个字段在从服务器配置使用

    show master status;
    

3.从服务器配置

  • 修改/etc/mysql/my.cnf,添加

    [mysqld]
    server-id=2
    #启用二进制日志
    log-bin=mysql-bin
    #复制的数据库名,如果复制多个数据库,使用逗号分割
    #replicate-do-db=db201911
    #复制的数据表,如果复制多个数据表,使用逗号分割
    replicate-do-table=db201911.table1
    
  • 停止正在进行的slave

    stop slave;
    
  • 重置slave

    reset slave;
    
  • 配置从服务器slave

    CHANGE MASTER TO MASTER_HOST='数据库地址',MASTER_PORT=数据库端口,MASTER_USER='数据库用户名',MASTER_PASSWORD='数据库密码',MASTER_LOG_FILE='主服务器获取的File',MASTER_LOG_POS=主服务器获取的Position;
    
  • 启动slave

    start slave;
    
  • 查看状态

    show slave status;
    
    如果状态为yes表示开启成功。
    
    Slave_IO_Running: Yes 
    Slave_SQL_Running: Yes