MySql Slave Io_Thread Start 一

百无聊赖的我萌发了了解mysql数据库主从原理。接下来介绍的是我了解mysql主从原理的过程,作为分享的同时也作为备忘录使用,可能会比较啰嗦,请多担待。

一:环境准备
1.环境版本
Xcode Version 12.4 (12D4e)
Mysql 5.6.47
2.编译源码
基于Xcode编译mysql源码,这部分内容之前文章有记录
https://blog.csdn.net/qq_18913471/article/details/113741137
3.搭建主从环境
Xcode运行mysql作为另外一台实验机器的从库,过程就不描述了,大家自行百度

二:断点调试
1.了解mysql的io线程入口函数以及函数主要逻辑,之前已经整理了这部分内容,就不多加描述了
https://editor.csdn.net/md/?articleId=114916718

2.设置断点
了解了mysql的handle_slave_io入口函数之后,不难发现mysql是通过safe_connect函数建立与master的通信的,进入到safe_connect函数后发现实际发起连接请求的是connect_to_master函数,到此确定在connect_to_master上设置断点

3.启动从库io_thread线程
通过客户端连接xcode运行后的mysql服务,执行启动io_thread线程命令
start slave io_thread;

三:堆栈信息的梳理
1.启动slave io_thread线程后Xcode显示了mysql在启动io_thread线程的堆栈信息,以下是整体的堆栈信息截图,较多
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.堆栈信息主体信息剥离,为了清楚的认识mysql io_thread线程的启动过程,通过流程图的方式对启动过程中堆栈信息进行剥离,这样梳理的过程会直观一些
在这里插入图片描述
像极了贪吃蛇,哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值