MySQL协议分析

目录

[TOC]

1 交互过程

MySQL客户端与服务器的交互主要分为两个阶段:握手认证阶段和命令执行阶段。

1.1 握手认证阶段

握手认证阶段为客户端与服务器建立连接后进行,交互过程如下:

  • 服务器 -> 客户端:握手初始化消息
  • 客户端 -> 服务器:登陆认证消息
  • 服务器 -> 客户端:认证结果消息

1.2 命令执行阶段

客户端认证成功后,会进入命令执行阶段,交互过程如下:

  • 客户端 -> 服务器:执行命令消息
  • 服务器 -> 客户端:命令执行结果

MySQL客户端与服务器的完整交互过程如下

MySQL客户端与服务器交互示意图

2 基本类型

2.1 整型值

MySQL报文中整型值分别有1、2、3、4、8字节长度,使用小字节序传输。

2.2 字符串(以NULL结尾)(Null-Terminated String …


SQL语句实现某一字符串的替换

使用update+replace语句:

update table_name set column_name = replace(column_name,hutaow_original_string,'hutaow_new_string);

其中,table_name是表的名字,column_name是要替换数据的列的名字,hutaow_original_string是待替换的原始字符串,hutaow_new_string是新字符串,MySQL下验证成功。