MySQL系列-主从复制(5.7版本)

MySQL 5.7 主从复制

两台机器:192.168.96.2 - 主,192.168.96.3 - 从

步骤:

  1. 修改MySQL配置文件my.conf

192.168.96.2:

#vim /etc/my.cnf

保证binlog功能开启(如果原来就是打开的就不用修改了,用 show variables like ‘log_%’; 查看)

添加如下配置:

1
2
3
4
5
log-bin=mysql-bin  // 将mysql二进制日志取名为mysql-bin

binlog_format=mixed // 二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed

server-id=2 // 为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id

重启mysql:

#service mysqld restart

重启后可以登录进mysql,用 show variables like ‘log_%’; 查看binlog是否为ON

192.168.96.3:

配置同上,就是my.cnf中server-id的配置不同,server-id=3

  1. 在主服务器上为从服务器分配一个账号

GRANT replication slave ON *.* TO ‘slave‘@’%’ IDENTIFIED BY ‘slave’;

  1. 查看主服务器binlog的信息

show master status;

配置完从服务器之前不要对主服务器进行任何操作!!

  1. 设置从服务器

(如果你以前配置过主从的话,一定要先关闭:stop slave;

CHANGE MASTER TO MASTER_HOST=”192.168.96.2”, MASTER_USER=”slave”, MASTER_PASSWORD=”slave”, MASTER_LOG_FILE=”mysql-bin.000001”, MASTER_LOG_POS=249;

参数解释:

MASTER_HOST:设置要连接的主服务器的ip地址

MASTER_USER:设置要连接的主服务器的用户名

MASTER_PASSWORD:设置要连接的主服务器的密码

MASTER_LOG_FILE:设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息

MASTER_LOG_POS:设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,最后一项不需要加引号,否则配置失败

  1. 启动从服务器

start slave;

  1. 查看是否配置成功

show slave status;

| Slave_IO_Running | Slave_SQL_Running |

这两项为yes就OK了

现在就可以自己测试了,比如在master的某个数据库中更新一条记录,就会看到slave数据库也会跟着同步了。

如果不能同步的,需要把master数据库的sql文件dump下来,然后用slave恢复一下,避免binlog的Position落后太多导致同步失败。

文章作者: Shawn Qin
文章链接: https://qinshuang1998.github.io/2019/08/29/mysql-article-03/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shawn's Blog