MySQL之Text Protocol
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 (see
Protocol::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的更多相关文章
- Hadoop Pipes Exception: Illegal text protocol command
Hadoop Pipes Exception: Illegal text protocol command 对于Hadoop pipes 出现这样的错误,基本上编译代码依赖的.so和.a 版本不匹配 ...
- Mysql 中 text类型和 blog类型的异同
MySQL存在text和blob: (1)相同 在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被 ...
- mysql的text类型长度问题
在我的概念中,mysql中的text字段应该是没有长度限制的,但是今天事实告诉我,text类型的长度是有限制的.其中mysql的text类型有64K长度限制的,MEDIUMTEXT中型是2G,LONG ...
- mysql中text数据类型
有个小问题记录下: 需要从第三方api接口获取数据,返回的数据的长度不定,设计表的时候设计成了varchar(256):结果存数据的时候提示表字段长度不够. 一直从300改到500,600,700都一 ...
- MySQL中TEXT与BLOB字段类型的区别
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下 在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...
- Mysql的Text和Blob的比较
MySQL存在text和blob: (1)相同 在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值,值被截 ...
- MySQL多Text字段报8126错误(解决过程)
一.背景 我们的MySQL数据库有一张10个Text的字段的表,还包括几个char和varchar字段,由于业务需求,我在表中加多一个Text字段的时候,插入记录的出现了下面的错误: Row size ...
- 一次故障解决过程梳理:mysql varchar text timestamp
CHAR 类型的一个变体是 VARCHAR 类型,char(M),M是指字节长度,和varchar(M)一样 故障原因:mysql主键设置为int(9),但数据量已经大于int(9)的范围了 tips ...
- mysql的text字段长度?mysql数据库中text字段长度不够的问题
类型是可变长度的字符串,最多65535个字符: 可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQL ...
随机推荐
- 手写C++代码实现POST传输数据
char *pHttpPost = "POST %s HTTP/1.1\r\n" "Host: %s:%d\r\n" "Content-Type: a ...
- spacemacs:emacs和vim结合,大杀器。vim党转emacs
结合本人基础,做下述结论.不一定准确. 基础: 1. vim操作和高级操作,熟悉.使用的spf13-vim. 2. emacs以前学过,但是按键太累,相比vim简直难受. 3. emacs命令 ...
- python 全栈开发之旅
目录 python 基础语法 python 数据类型(未完成) python 内置函数(未完成) python 常用标准库(未完成) python 类(未完成) python 进程.线程.协程(未完成 ...
- iostat的坑
简单使用iostat查询io使用量,会让你看不懂所以然,因为很多人疏忽了这个命令查到的结果根本不是实际值,需要注意的是一句话: “第1次采样信息与单独执行iostat的效果一样,为从系统开机到当前执行 ...
- mysql 查询某一天数据
某个场景下需要查询某一天的数据,例如2017/9/27这一天所有的数据量,有以下几个方法. SELECT * FROM cms_book_statistics WHERE substring(Conv ...
- golang 切片扩容, 时间复杂度
在切片扩容时,如果原来的底层数组足够大,能放的下 append 的数据,就不会新建底层数组.而如果不够的话,则会分配一个新的数组.也因此是 O(n) 的时间复杂度
- python不定长参数 *argc,**kargcs(19)
在 python函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑,关于不定长参数的传递我们还没有讲,今天这篇文章主要就是讲解这个问题. 一.函数不定长参数 ...
- 网站架构(LNMP)
说明: 1)LNMP架构的组成(作用) 2)LNMP架构的部署 3)LNMP架构通讯原理 4)LNMP服务之间如何建立管理 nginx+php 运维负责 php+mysql 开发负责 5) 运 ...
- [转帖]2018年SaaS行业收入结构及未来发展预测[图]
2018年SaaS行业收入结构及未来发展预测[图] http://www.chyxx.com/industry/201908/774792.html 2019年08月23日 14:34:47字号:T| ...
- [DEBUG] Springboot打包jar/war后访问包外的路径
======================================================== 我是Ruriko,我爱这个世界:)