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