1)[01]COM_QUIT

告诉服务器,客户端想要关闭连接

返回:或者关闭一个连接或者一个OK_Packet

有效负载:

1      [01]COM_QUIT

字段:

command(1)--0x01 COM_QUIT  

例子:

01 00 00 00 01

2)[02]COM_INIT_DB

更改连接的默认架构

返回:OK_Packet或者ERR_Packet

有效负载:

1      [02]COM_INIT_DB

string[EOF]     schema name

字段:

command(1)--0x02 COM_INIT_DB

schema_name(string.EOF)--name of the schema to change to

例子:

05 00 00 00 02 74 65 73 74 .....test

3) [03]COM_QUERY

一个COM_QUERY数据包像服务器发送基于text的立即执行的查询。

返回:服务器回复带COM_QUERY Response的COM_QUERY数据包。

查询语句的长度等于数据包里的length - 1。

有效负载:

1      [03]COM_QUERY  

string[EOF]     the query the server shall execute

字段:

command_id(1)--0x03 COM_QUERY

query(string.EOF)--query_text

返回:COM_QUERY Response

例子:

4)[04]COM_FIELD_LIST

注意:从MySQL5.7.11开始,COM_FIELD_LIST已弃用,将在未来版本删除。而是使用mysql_query()来执行SHOW COLUMNS语句。

COM_FIELD_LIST:

获取表的列定义

有效负载:

5)[05]COM_CREATE_DB

创建一个架构

有效负载:

1      [05]COM_CREATE_DB

string     schema name

返回:OK_Packet或者ERR_Packet

例子:

05 00 00 00 05 74 65 73 74 .....test

6)[06]COM_DROP_DB

删除一个架构

有效负载:

1      [06] COM_DROP_DB

string     schema name

返回:OK_Packet或者ERR_Packet

例子:

05 00 00 00 06 74 65 73 74 .....test

7)[07]COM_REFRESH

注意:从MySQL5.7.11开始,已删除COM_REFRESH。使用mysql_query()来执行刷新语句。

8)[08]COM_SHUTDOWN

注意:同(7)。

9)[09]COM_STATISTICS

获取人类可读的内部统计信息。

COM_STATISTICS:获取活动线程列表

去做:检查说明

返回:string.EOF

有效负载:

1      [09]COM_STATISTICS

10) [0a] COM_PROCESS_INFO

注意:同(7)。

11)[0b]COM_CONNECT

服务器中的内部命令

有效负载:

1      [0b]COM_CONNECT

返回:ERR_Packet

12)[0c]COM_PROCESS_KILL

注意:同(7)。

13)[0d]COM_DEBUG

COM_DEBUG触发内部调试信息转储到mysql-server的stdout。

此操作需要SUPER权限。

COM_DEBUG:

转存debug信息到stdout上。

返回:EOF_Packet或者ERR_Packet

有效负载:

1      [0d]COM_DEBUG

14) [0e]COM_PING

检查服务器是否还活着

返回:OK_Packet

有效负载:

1      [0e]COM_PING

15) [0f]COM_TIME

服务器的内部命令

有效负载:
1      [0f]COM_TIME

返回:ERR_Packet

16) [10] COM_DELAYED_INSERT

服务器的内部命令

有效负载:

1      [10]COM_DELAYED_INSERT

返回:ERR_Packet

17)[11]COM_CHANGE_USER

更改现连接的用户并且重置连接状态。

用户变量

临时表

预处理语句

还有其他

接下来是与初步握手相同的状态。

COM_CHANGE_USER:更改现连接的用户。

返回:

Authentication Method Switch Request Packet or ERR_Packet

有效负载:

1        [11]COM_CHANGE_USER

string[NULL]     user

  if capabilities &SECURE_CONNECTION{

1        auth-response-len

string[$len]             auth-response

}else{

string[NULL]          auth-response

}

string[NULL]           schema-name

  if more data{

2        character -set

    if capabilities & CLIENT_PLUGIN_AUTH

    {

string[NULL]    auth plugin name

    }

    if capabilities & CLIENT_CONNECT_ATTRS

    {

lenenc-int    length of all key-values

lenenc-str    key

lenenc-str    value

    if -more data in 'length of all key-values', more keys and values pairs

    }

}

Fields

  • command (1) -- command byte

  • username (string.NUL) -- user name

  • auth_plugin_data_len (1) -- length of the auth_plugin_data filed

  • auth_plugin_data (string.var_len) -- auth data

  • schema (string.NUL) -- default schema

  • character_set (2) -- new connection character set (seeProtocol::CharacterSet)

  • auth_plugin_name (string.NUL) -- name of the auth plugin that auth_plugin_data corresponds to

  • connect_attrs_len (lenenc_int) -- length in bytes of the following block of key-value pairs

18) [1f] OM_RESET_CONNECTION

重置会话状态,比COM_CHANGE_USER轻量级,因为不关闭和重新开启连接,不需要重新认证。

有效负载:

1      [1f] COM_RESET_CONNECTION

返回:

ERR_Packet或者OK_Packet

19)  [1d] COM_DAEMON

服务器的内部命令

有效负载:

1      [1d] COM_DAEMON

返回:ERR_Packet

MySQL之Text Protocol的更多相关文章

  1. Hadoop Pipes Exception: Illegal text protocol command

    Hadoop Pipes Exception: Illegal text protocol command 对于Hadoop pipes 出现这样的错误,基本上编译代码依赖的.so和.a 版本不匹配 ...

  2. Mysql 中 text类型和 blog类型的异同

    MySQL存在text和blob: (1)相同 在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被 ...

  3. mysql的text类型长度问题

    在我的概念中,mysql中的text字段应该是没有长度限制的,但是今天事实告诉我,text类型的长度是有限制的.其中mysql的text类型有64K长度限制的,MEDIUMTEXT中型是2G,LONG ...

  4. mysql中text数据类型

    有个小问题记录下: 需要从第三方api接口获取数据,返回的数据的长度不定,设计表的时候设计成了varchar(256):结果存数据的时候提示表字段长度不够. 一直从300改到500,600,700都一 ...

  5. MySQL中TEXT与BLOB字段类型的区别

    这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下   在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...

  6. Mysql的Text和Blob的比较

    MySQL存在text和blob: (1)相同 在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值,值被截 ...

  7. MySQL多Text字段报8126错误(解决过程)

    一.背景 我们的MySQL数据库有一张10个Text的字段的表,还包括几个char和varchar字段,由于业务需求,我在表中加多一个Text字段的时候,插入记录的出现了下面的错误: Row size ...

  8. 一次故障解决过程梳理:mysql varchar text timestamp

    CHAR 类型的一个变体是 VARCHAR 类型,char(M),M是指字节长度,和varchar(M)一样 故障原因:mysql主键设置为int(9),但数据量已经大于int(9)的范围了 tips ...

  9. mysql的text字段长度?mysql数据库中text字段长度不够的问题

    类型是可变长度的字符串,最多65535个字符:     可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQL ...

随机推荐

  1. Apache配置优化之开启KeepAlive

    在HTTP 1.0中和Apache服务器的一次连接只能发出一次HTTP请求,而KeepAlive参数支持HTTP 1.1版本的一次连接,多次传输功能,这样就可以在一次连接中发出多个HTTP请求.从而避 ...

  2. Paper Mark2

    论文:CBAM: Convolutional Block Attention Module 论文链接 pytorch代码 论文:Approach for Fashion Style Recogniti ...

  3. 在Electron运行的页面使用CSS的calc导致应用卡死

    这几天发现运行在我们开发的Electron里面的网页有部分应用点击访问就会卡死,通过排除法定位到使用了CSS的calc方法,如下: <el-table height="calc(100 ...

  4. (IStool)64位软件安装在32位操作系统时给出提示

    需求:64位的软件当在32位操作系统下安装时,需要提示用户不能在32位操作系统中进行安装 实现:打包时启用64位模式(打包工具用的是Inno Setup 5) 安装脚本段需要添加以下代码: [Setu ...

  5. 最新 金蝶软件java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.金蝶软件等10家互联网公司的校招Offer,因为某些自身原因最终选择了金蝶软件.6.7月主要是做系统复习.项目复盘.Leet ...

  6. jQuery禁用input历史选择

    $("#id").attr("autocomplete", "off");

  7. 日常工作问题解决:rhel7下配置多路径设备

    目录 1.情景描述 2.安装多路径软件 2.1 安装多路径 2.2检查安装情况 2.3 重启系统 2.4 将多路径软件添加至内核模块 2.5 检查内核添加情况 2.6 启动multipath服务 2. ...

  8. PAT甲级 模拟题_C++题解

    模拟题 PAT (Advanced Level) Practice 模拟题 目录 1008 Elevator (20) 1042 Shuffling Machine (20) 1046 Shortes ...

  9. SASS摘要

    SASS提高了代码的重复利用率,提高了效率.不用去记或者查找复杂或者繁琐的参数和书写规则. 这里简单整理了实际业务中常常用到的几个功能. 1. 父元素引用 & a { &:hover ...

  10. golang之map的使用声明

    1.map的基本介绍 map是key-value数据结构,又称为字段或者关联数组.类似其它编程语言的集合,在编程中是经常使用到的 2.map的声明 1)基本语法 var map 变量名 map[key ...