MySQL

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

一、主库配置

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

重启前


MySQL重启前

重启后


MySQL重启后
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;
主节点日志

在从库上配置同步数据的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;
image.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;

文章参考

问题解决参考

MySQL主从等参考

上一篇 下一篇

猜你喜欢

热点阅读