首页 > 技术文章 > linux操作系统centos7.8 mysql8.0 主从数据同步

1024-admin 2021-01-07 14:53 原文

上篇文章已经讲解了mysql8.0的安装,现在来看一下怎么配置主从数据同步。

单机安装还是有问题的话可以参考我这篇文章。https://www.cnblogs.com/1024-admin/articles/14215312.html

 mysql主从复制原理:

Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,
这些记录叫做二进制日志事件(binary log events);
Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);
Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完
成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。

注意事项:

主从服务器操作系统版本和位数一致;
Master 和 Slave 数据库的版本要一致;
Master 和 Slave 数据库中的数据要一致;
Master 开启二进制日志, Master 和 Slave 的 server_id 在局域网内必须唯一;

 

本文以node1和node2为例:数据库版本都是8.0.20,以node1作为MASTER,node2作为slave。

  

 先配置主节点(标红的为新增):

只需要配置mysqld,其他的都可以注释,从节点也是一样的。

vim /etc/my.cnf 

[mysqld]
basedir=/var/local/mysql-8.0/
datadir=/var/local/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
log-bin=mysql-bin
server-id=1

从节点配置:

vim /etc/my.cnf 

[mysqld]
basedir=/var/local/mysql-8.0/
datadir=/var/local/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
erver-id=2

 

  

主从配置完了之后,创建用于复制操作的用户。

在主节点上创建test用户,用于从节点连接主节点使用。

CREATE USER 'repl'@'192.168.107.102' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.107.102';

刷新授权表信息

flush privileges;

  现在获取主节点当前的binlog文件名和位置。

 

  记录下来,然后再从节点上设置主节点的master参数

mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.107.101',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='Ron_master_1',
-> MASTER_LOG_FILE='binlog.000001',
-> MASTER_LOG_POS=2212;
Query OK, 0 rows affected, 2 warnings (0.08 sec)

mysql>

  然后开启同步(注意关闭两边防火墙):

 

 

可以通过show slave status \G;该命令查看主从同步情况

遇到这个报错,是因为主机和丛机的server_id相同了,

 

 

  所以要修改从机的值

set global server_id=2;

 

 修改完了之后,从机要先执行stop 再执行start。

 

 现在在执行show slave status \G;查看同步情况

 

 

进行测试验证:

 

 主从数据同步成功。编写不易,望采纳!

推荐阅读