MySQL5.7主从配置| mysql

Posted by Tang Blog on December 11, 2019

这篇文章主要介绍CentOS环境下配置MySQL5.7的主从结构方法。 本文分为以下几个部分:

  1. master节点配置
  2. slave节点配置
  3. 测试与FAQ等

一、机器规划

主机节点 数据库类型 数据库版本
172.17.207.152 master 5.7
172.17.207.151 slave 5.7

二、master节点配置

1、配置my.cnf文件

在my.cnf文件的[mysqld]下加入如下配置

[mysqld]
server_id = 1                       #主数据库端ID号
log-bin = mysql-bin                 #开启二进制日志
binlog-do-db = mytest               #需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
auto_increment_offset = 1           #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
auto_increment_increment = 1        #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
log_bin_trust_function_creators = 1 #将函数复制到slave

2、重启数据库

service mysqld restart

3、配置帐号与权限

为从服务器配置登录的用户、密码及权限等,假设 slave 为登录用户名, 172.17.207.151 为从库的ip,slpass 为从服务器登录的密码,请根据自身的情况配置。

mysql -u root -p
grant replication slave,replication client on . to 'slave'@'172.17.207.151' identified by 'slpass';
flush privileges;

4、查看主节点信息

show master status\G;

三、slave节点配置

1、配置my.cnf文件

在my.cnf文件的[mysqld]下加入如下配置:

[mysqld]
server_id = 2 #从节点的ID号,不能和主节点的一样
relay_log = relay-log #开启中继日志
read_only = ON #只读开启,实现读写分离

2、重启数据库

service mysqld restart

3、配置主节点信息

设置复制的主节点数据库地址帐号及位置信息:

CHANGE MASTER TO MASTER_HOST='172.17.207.152',MASTER_USER='slave',MASTER_PASSWORD='slpass',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2518;

上面语句参数说明:

  • MASTER_HOST:主库ip,
  • MASTER_USER:上面主库配置从服务器登录的用户密码时配置的用户名
  • MASTER_PASSWORD: 上面主库配置从服务器登录的用户密码时配置的用户密码
  • MASTER_LOG_FILE:主库的数据库日志文件, 参考上面show master status\G; 得出的File 字段的值,
  • MASTER_LOG_POS:参考上面show master status\G; 得出的Position 字段的值

3、开启主从复制

登录mysql后执行:

START SLAVE;

登陆mysql后执行:

show slave status\G;

结果中的Slave_IO_Running 和 Slave_SQL_Running 均为 Yes ,则标识是已经配置成功。

四、测试

测试主从即可。

五、FAQ

参考地址:https://blog.csdn.net/sunbocong/article/details/81634296