Mysql环形同步

三台 MySQL 数据库做三主环形同步 前几周做了个项目,需要三台 mysql 数据库实时同步,查阅了下 mysql 的技术文档,费了点时间,下面直接贴出数据库三主环形同步的方法。

环境 同步前提是三台 PC 能互相 ping 通。 系统:centos7 数据库:mysql 三台 MySQL 数据库做三主环形同步:A 主 B 从,B 主 C 从,C 主 A 从 A:192.168.3.104 B:192.168.3.101 C:192.168.3.102

方法 一、修改数据库配置文件 gedit etc/my.cnf #———————————-添加的部分———————————— server_id = 3 log_bin = mysql-bin binlog-do-db=link #需要同步的数据库 relay-log=relay-bin relay-log-index=relay-bin.index replicate-do-db = link replicate-do-table=link.sync auto_increment_offset=3 auto_increment_increment=3

sync_binlog=1 slave_net_timeout=30 innodb_flush_log_at_trx_commit=2 log-slave-updates=true slave-skip-errors=all #————————————————————————————– server_id 要不一样 三台数据库可以设为 1、2、3 auto_increment_offset 同理 设为 1、2、3 auto_increment_increment 表示几台同步

二、重启 mysql 数据库

systemctl restart mariadb.service

三、在三台数据库里面设置权限账户

进入到各台数据库的 shelll 界面

A:create user ‘slave’@‘192.168.3.101’ identified by ‘root’; grant replication slave on . to ‘slave’@‘192.168.3.101’; flush privileges; B:create user ‘slave’@‘192.168.3.102’ identified by ‘root’; grant replication slave on . to ‘slave’@‘192.168.3.102’; flush privileges; C:create user ‘slave’@‘192.168.3.104’ identified by ‘root’; grant replication slave on . to ‘slave’@‘192.168.3.104’; flush privileges;

账户为”slave“,密码是”root"

四、查看主机 log_file:show master status;

创建完账户后,就输入:show master status;来查看主机 log_file。 记下 master_log_file 和 master_log_pos 的值,从机连接主机时要用到。

五、从机连接主机

进入到各台数据库的 shell 界面

A:(A 的主机为 C 机,所以要连接 C 机) change master to master_host=‘192.168.3.102’,master_user=‘slave’,master_password=‘root’,master_log_file=‘mysql-bin.000003’,master_log_pos=770;#此处的,master_log_file 和 master_log_pos 的值为上一步查询到的,为 C 机上查询到的值,下面两台同理 change master to MASTER_HEARTBEAT_PERIOD=10; B:(B 的主机为 A 机,所以连接 A 机) change master to master_host=‘192.168.3.104’,master_user=‘slave’,master_password=‘root’,master_log_file=‘mysql-bin.000004’,master_log_pos=1113; change master to MASTER_HEARTBEAT_PERIOD=10; C:(C 的主机为 B 机,所以连接 B 机) change master to master_host=‘192.168.3.101’,master_user=‘slave’,master_password=‘root’,master_log_file=‘mysql-bin.000001’,master_log_pos=662; change master to MASTER_HEARTBEAT_PERIOD=10;

“change master to MASTER_HEARTBEAT_PERIOD=10;”为从机心跳信号,目的是为了让主机知道从机还在线。

六、开启同步

从机连接完主机后,在从机开启同步:start slave; 然后查看连接状态:show slave status \G; 如果看到: Slave_io_running:yes Slave_sql_running:yes 即为同步成功


版权声明:本文为 CSDN 博主「tyz666」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/tyz666/article/details/100094983

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up