mysqlx协议是什么_MySQLX协议分析

更新时间:2023-07-20 07:30:32 阅读: 评论:0

mysqlx协议是什么_MySQLX协议分析
这篇⽂章从分析MySQL X这个插件的协议层, 包括两⽅⾯内容:protobuf消息的具体定义,及这些消息到SQL语句的映射。
MySQL X简介
MySQL X 是MySQL 5.7发布时⾃带的⼀个插件,启⽤后,即可通过 ** X Protocol** 协议提供⼀个⾮常类似MongoDB的服务。在
Unix/Linux环境下,加载这个插件的命令是:
INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';
后续的配置,可以参考这⾥。
对应地,客户端程序称为 MySQL Shell , 在这⾥可以下载。
服务端的这个插件在收到请求之后,会将其翻译为对应的SQL语句,然后转交给MySQL主服务执⾏,并将结果集返回给客户端。
消息协议
消息协议定义在 MySQL 5.7 源码树的rapid/plugin/x/protocol⽬录下,包括连接管理、会话管理、CRUD等各种类型。需要注意的是,这些⽂件中定义了多个不同名的包,因此在Golang中,是⽆法使⽤的,还需要做⼀些包括建⽴⼦⽬录、更改包名等在内的微⼩处理。消息本⾝的⽂档在这⾥。
简单的歌曲然⽽⽂档并不涵盖所有的细节,因此,我们写⼀个抓包并打印消息内容的⼯具,来帮助我们调试这个协议。项⽬在这⾥。
百香果种苗
中国十大名校最新排名消息映射到SQL
管理员命令 ,在rapid/plugin/x/src/{admin_cmd_handler.h,admin_cmd_handler}中。
ping,直接返回OK消息;
list_clients,返回4个column metadata,分别为client_id, ur, host, sql_ssion;
kill_client玄幻小说排行榜
create_collection
议论文阅读项羽活了多少岁
drop_collection
ensure_collection
create_collection_index
drop_collection_index
双方合作协议书list_objects
enable_notices
disable_notices
蚂蚁金服上市了吗list_notices
验证相关的命令 ,在同⽬录下的auth_mysql41.h和auth_mysql41⽂件中。由三个函数,分别对应start,continue和done三个阶段。
CRUD类操作 ,通过crud_cmd_handler.h中定义的Crud_command_handler类的7个接⼝实现,这7个接⼝分别负责增删改查记录,及创建、修改、销毁视图。
Inrt_statement_builder类将⽂档的插⼊操作改写为SQL的INSERT语句;
Update_statement_builder类将⽂档的更新操作改写为UPDATE语句;
对应的,还有Delete_statement_builder和find_statement_builder类。
还有⼀些 notice 相关的内容,暂略。

本文发布于:2023-07-20 07:30:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1088798.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   协议   对应
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图