天天看点

MySQL 5.7 主从配置

MySQL进行主从配置可以降低服务器压力,提高服务器的可用性。设置步骤如下:

环境:

服务器1:Centos Linux 7.3 ip: 172.16.0.102

服务器2:Centos Linux 7.3 ip: 172.16.0.104

MySQL:mysql5.7.18

1,配置主服务器

修改/etc下的修改my.cnf文件,在[mysqld]下面增加下面几行,然后重启MySQL数据库。

#server-id给数据库服务的唯一标识
server-id=1

#log-bin设置此参数表示启用binlog功能,并指定路径名称
log-bin=/var/lib/mysql/mysql-bin
sync_binlog=0
#设置日志的过期天数
expire_logs_days=7
#binlog_cache_size此参数表示binlog使用的内存大小
binlog_cache_size=1M
           

在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

mysql> create user 'repl'@'172.16.%' identified by 'L*****@2*8#3&7';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.%';
           

重启mysql使配置生效

mysql> show master status;
           
MySQL 5.7 主从配置

2,配置从服务器

修改/etc下的修改my.cnf文件,在[mysqld]下面增加下面几行,然后重启MySQL数据库。

#server-id给数据库服务的唯一标识
server-id=2
#read_only设置数据库为只读,防止从库数据修改后,主从数据不一致,但是有Super权限的账号还是有写的权限,所以要某个账号只读的话,可以去掉账号的Super权限
read_only=1

#指定需要同步的表
replicate-wild-do-table=ljzxdb.%
#binlog_cache_size此参数表示binlog使用的内存大小
binlog_cache_size=1M
           

重启mysql使配置生效

然后连接主库

mysql> CHANGE MASTER TO MASTER_HOST='172.16.0.102', MASTER_USER='repl', MASTER_PASSWORD='[email protected]*8#3&7', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=15051;

           

启动同步

mysql> start slave;
           

查看从库状态

mysql> show slave status \G;
           
MySQL 5.7 主从配置

观察这两个值是否都是yes,Slave_IO_Running: Yes 和Slave_SQL_Running: Yes,如果都是yes,说明运行正常。

如果出现同步失败,可以根据提示处理错误,处理完成后,需要刷新同步配置:

先停止同步

mysql> stop slave;
           

清理掉之前的配置,防止同步已经同步了的数据

mysql> reset slave all;
           

然后重新连接主库,进行同步。

继续阅读