
从库生成两个线程,一个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
查看从库状态 发现没有错误 到此主从同步配置已经完成.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)