Skip to content

MySQL 通信协议

imfht edited this page Oct 19, 2023 · 2 revisions

MySQL通信协议

MySQL是一个常用的数据库服务,其通信使用二进制协议,客户端连接成功后服务器会主动返回服务器的信息,一个典型的返回如下:

4a 00 00 00 0a 35 2e 37 2e 33 33 00 63 e1 00 00 2f 4a 25 18 5f 20 64 25 00 ff ff 08 02 00 ff c1 15 00 00 00 00 00 00 00 00 00 00 4a 2b 52 1d 13 45 53 02 5f 01 53 65 00 6d 79 73 71 6c 5f 6e 61 74 69 76 65 5f 70 61 73 73 77 6f 72 64 00

上述回包由如下几部分组成

  • 4a 00 00 00 用4个字节表示一个32位整数(Little-endian),表示数据包长度
  • 0a 握手协议,这里表示V10,3.21.0之后的版本握手协议都是v10
  • 35 2e 37 2e 33 33 代表版本号,因为MySQL使用00 进行截断,序列号和00之间的内容即为版本号4a 00 00 00 0a 35 2e 37 2e 33 33 00

之后的就不关注啦~ 感兴趣的可以看一下这两个文章:

image

Clone this wiki locally