mysql一主多从集群搭建

主从复制原理

当对主服务器进行写的操作时,主服务器将自己的操作记录到一个二进制日志文件中,从服务器有一个心跳机制,定时的去读取主服务器的日志文件,当对比自己的日志文件有差异时,将差异部分同步更新到自己的服务器上。

实验

环境,三台服务器,一台mysql主,两台mysql从

master
192.168.169.134

slave1
192.168.169.133
slave2
192.168.169.135

分别安装相同版本的mysql,我实验的时候,安装的是mysql 5.7.28

主master服务器mysql配置文件修改
/etc/my.cnf

log-bin=mysql-bin
server-id=3000

两个从服务器只配置不同的server-id即可,log-bin不用配。

server-id=3001
server-id=3002
重启这三个mysql服务器

service mysql restart

在主服务器上,创建复制的账号

 grant replication slave on *.* to 'copy'@'%' identified by '123456';

并重置下主服务器状态。
在这里插入图片描述
user表会多一条记录。
在这里插入图片描述
再使用命令 show master status; 获取主服务器二进制binlog文件名及坐标(二进制文件名和坐标值在后面会用到)
在这里插入图片描述
在从服务器上分别执行如下命令
stop slave;
reset slave;
在这里插入图片描述

在从服务器上设置主从关系
change master to master_host=‘192.168.169.134’,master_user=‘copy’,master_port=3306,master_password=‘123456’,master_log_file=‘mysql-bin.000001’,master_log_pos=154;

设置主从关系(change master to master_host表示服务器ip,master_user表示服务器用户名,master_port表示端口号,master_password表示密码,master_log_file表示二进制日志文件名称,master_log_pos表示二进制日志文件地址)
然后启动slave,执行

start slave;

使用show slave status \G查看状态
在这里插入图片描述

如上就搭建好了一主两从的mysql集群,可以在主节点mysql服务器创建一张表,添加一点测试数据,修改或者删除数据,从服务器会连同更新,保持一致性。

注意点,从服务器根据定时心跳去读取主服务器的日志文件,当对比自己的日志文件有差异时,将差异部分同步更新到自己的服务器上。如果手动更新从服务器上的数据,主服务器是不会感知的,注意消化原理。

发布了1230 篇原创文章 · 获赞 310 · 访问量 223万+

猜你喜欢

转载自blog.csdn.net/huangbaokang/article/details/105515763