linux操作系统centos7.9 mysql8.0 主从数据同步

网友投稿 292 2022-10-08

linux操作系统centos7.9 mysql8.0 主从数据同步

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;查看同步情况

进行测试验证:

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Web关键字填空示例详解
下一篇:译文丨伯克利对serverless的看法:简化云编程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~