MySql 主库从库原理及实战

MySql 主库从库原理及实战,第1张

从库生成两个线程,一个I/O线程,一个SQL线程;

I/O线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;

主库会生成一个 log dump 线程,用来给从库 I/O线程传binlog;

SQL 线程,会读取relay log文件中的日志,并解析成具体 *** 作,来实现主从的 *** 作一致,而最终数据一致;

1、设置主/从服务器配置

2、创建主/从服务器容器

此处为尽量排除版本不一致导致各种未知问题,所以采用docker构建部署MySql

3、登录主服务器的mysql,查询master的状态

Slave_IO_State 提示:Waiting for master to send event 就是成功了,可在主库添加或修改数据,在到从库查看是否同步

Connecting to master 多半是网络连接不通,可查看日志文件确认

到此你已经可以实现主从同步了

温馨提示 : 以上弱密码需自行修改

author:sufei

版本:8.0.16

 本文主要分析MySQL复制中从库IO线程的执行过程。当然MySQL复制过程分为基于gtid的io以及基于文件位置io,其实两种处理方式相差无几,这里主要分析基于gtid的io线程。从库复制线程(包含io线程和sql线程)的入口函数为 start_slave ,io线程的主要逻辑函数为 handle_slave_io ,之间的调用关系如下:

 相应的之后检测不同event是否合法,

 完成上述步骤都又进入第15步,开始读取新的event事件。

一.mysql主从库与读写分离的实现理论

二.mysql配置

1.准备两台服务器安装mysql(也可以在一台中装两个mysql修改端口号避免冲突)

2.分别连接mysql

3.配置mysql

1.配置主库 monster

打开binary log

2.配置从库

主库授权

账号repl后面的是从库的ip地址 mysql是账号repl的密码

刷新

后面master_log_pos=0 表示从零开始同步 master_log_file 是上面SHOW MASTER STATUS 下面的file文件

在从库中开启主从跟踪

查看从库状态

从库中终止主从同步 stop slave

查看 my.cnf 文件 把 server -id=1 的字段删除 保留server-id=2 修改后保存 重启mysql 重新连接 开启主从同步start slave

查看从库状态 发现没有错误 到此主从同步配置已经完成.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/6111838.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存