MySQL 协议的交互流程讲得比较清楚的文章,周凯写的这篇MySQL 系列之协议解析和交互流程,蛮适合你如果正在搞数据库底层对接。没有花里胡哨的术语,直接上干货,像握手流程、登录认证、命令执行这些环节,讲得挺细,照着顺一遍能搞明白整个通讯过程。
MySQL 协议的协议包结构其实不复杂,主要就三部分:包长、序号和载荷。文章用实例拆包讲了怎么手动,嗯,蛮实用,尤其你在调试一些奇怪连接问题时,挺有的。
如果你对比过 PostgreSQL,你会发现两者在连接阶段逻辑差挺多的。文章还贴心附了篇对比文章:MySQL 和 PostgreSQL 协议解析对比,有空可以看看,了解一下不同协议设计的思路。
除了主文,还有一些不错的延伸阅读,比如MySQL 中的数据类型结构(点这里)和MySQL 启动流程源码(也在这)。如果你想从协议一路深入到源码,搭配来看效果更好。
建议你手边开个抓包工具,比如Wireshark,跟着文中步骤实际操作一下,对协议细节的理解会更清楚。哦对了,调试时注意编码问题,尤其登录包里用户名密码那块,别被坑了。
如果你最近要写 MySQL 驱动、做中间件,或者搞数据库安全那块,这篇文章可以帮你节省不少摸索时间。抓住协议核心逻辑,别死抠每个字段含义,理解交互节奏更重要。