这篇文章主要介绍CentOS环境下配置MySQL5.7的主从结构方法。 本文分为以下几个部分:
- master节点配置
- slave节点配置
- 测试与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