MySQL5.7.25在CentOS7.x中配置主从复制
2019-06-13 本文已影响0人
静美书斋
环境
环境 | 版本 |
---|---|
操作系统 | CentOS7.3.1611 64位 |
MySQL | mysql-5.7.25 |
VM虚拟机 | VMware Workstation 12.5.7 build-5813279 |
主机
主从标识 | IP |
---|---|
主库(master) | 172.17.20.219 |
从库(slave) | 172.17.20.217 |
- 两台服务器的MySQL数据库使用的默认端口3306均已放行。
- 关于在CentOS7.x上配置MySQL数据,参看:CentOS7.x使用yum安装MySQL数据库
- 由于从库主机是从主库中clone而成,会造成一些问题,解决参看mysql主从复制之异常解决--- Slave_IO_Running: NO 之三大原因此文章的原因一可解决clone产生的问题。
一、主库配置
1、配置主库my.cnf
主库my.cnf
文件配置如下(查看:egrep -v '(^$|^#)' /etc/my.cnf
)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
server-id=1 #server的唯一标识
auto_increment_offset=1 #自增id起始值
auto_increment_increment=2 #每次自增数字
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
replicate-ignore-db = mysql #忽略不同步主从的数据库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys
expire_logs_days=7 #自动清理7天前的log文件,可根据需要修改
2、重启主MySQL
systemctl restart mysqld
重启前
![](https://img.haomeiwen.com/i2978087/72dff67729724892.png)
重启后
![](https://img.haomeiwen.com/i2978087/112fe6c1f5e8f86f.png)
3、主库配置复制用户
# 如果没有创建用户时使用
grant replication slave on *.* to 'root'@'%' identified by 'password';
# 已创建用户使用
grant replication slave on *.* to 'dev'@'%';
# 刷新权限
flush privileges;
至此,主库已经配置完成
二、从库配置
1、从库配置文件my.cnf
如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
server-id = 2 #server的唯一标识
auto_increment_offset = 2 #自增id起始值
auto_increment_increment = 2 #每次自增数字
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
replicate-ignore-db = mysql #忽略不同步主从的数据库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys
expire_logs_days=7 #自动清理7天前的log文件,可根据需要修改
2、重启从库MySQL
systemctl restart mysqld
3、配置slave
查看主节点日志情况
mysql> show master status;
![](https://img.haomeiwen.com/i2978087/27b341da79add285.png)
在从库上配置同步数据的SQL语句,操作如下
mysql>change master to \
master_host='172.17.20.219', \
master_user='dev', \
master_password='123@#$.2018QPkc', \
master_log_file='mysql-bin.000001', \
master_log_pos=657;
如果出现Slave_SQL_Running:No,可以停掉从库(stop slave
),手动执行上述语句。
- master_password为创建
dev
时的密码- master_log_file文件名为上述“主节点日志”图片中File显示的文件名
- master_log_pos为上述“主节点日志”图片中显示的Position
启动从节点
mysql> start slave;
查看状态
mysql> show slave status\G;
![](https://img.haomeiwen.com/i2978087/41225cffac5a92c8.png)
上图中下述两个状态必须为YES
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
三、验证
主库上进行如下操作
mysql> create database test;
mysql> use test;
mysql> create table test1(id int, name varchar(20));
从库上进行查看
mysql> show databases;