1.为ä»ä¹windowsä¸ç´å¼¹åºcurl.exe
2.MySQL源码阅读4-do_command函数/功能类命令
为ä»ä¹windowsä¸ç´å¼¹åºcurl.exe
curl.exeæ¯ä¸ä¸ªå½ä»¤è¡å·¥å ·ï¼å 许éè¿URLä¼ è¾æ°æ®ãå®æ¯æåç§åè®®ï¼å¦FTP/SãHTTP/SãIMAP/SãLDAP/SãMQTTãPOP3ãSMB/Sãmand函数/功能类命令
do_command函数在MySQL的源码线程循环中执行,分为读取命令和分发执行命令两个主要步骤。下载
在读取命令阶段,源码首先设置读取超时(my_net_set_read_timeout),下载通过vio(Virtual I/O)接口从连接中读取数据。源码读取时,下载svgkit 源码分析先解析包头,源码然后根据包头大小读取数据,下载同时检查是源码否超过最大包限制。若数据被压缩,下载使用zstd_uncompress或zlib_uncompress解压。源码解析数据并校验,下载将结果存储到thd对象中。源码
执行命令阶段,下载依据获取到的源码聊天系统源码交易命令执行逻辑,分配内存给String对象。通过dispatch_command函数,进入switch...case...结构,执行不同命令的特定逻辑。功能类命令包括初始化数据库(COM_INIT_DB)、注册从节点(COM_REGISTER_SLAVE)、重置连接(COM_RESET_CONNECTION)、源码传送门克隆插件(COM_CLONE)、修改用户(COM_CHANGE_USER)等。其他类如数据操作、未实现命令则在后续阅读。
以功能类命令为例,COM_INIT_DB用于改变当前连接的默认数据库。COM_REGISTER_SLAVE则在master节点上注册从节点,小蚂蚁网站源码启动从节点与master节点的同步。COM_RESET_CONNECTION重置连接,但不创建新连接或更新授权。COM_CLONE命令用于克隆远程插件到本地,并确保一致性。COM_CHANGE_USER允许修改当前连接的用户,并重置连接。收魂插件源码
具体操作包括解析请求包、验证、更新thd信息、保存用户连接信息、证书验证、检查密码有效期、限制最大连接数、更新schema属性等。COM_QUIT命令用于清除数据并退出循环。COM_BINLOG_DUMP_GTID和COM_BINLOG_DUMP用于请求发送binlog数据流,而COM_REFRESH命令用于刷新缓存、权限、日志、表、连接主机信息等数据。
在COM_PROCESS_INFO命令中获取进程处理信息,COM_SET_OPTION设置连接属性,COM_DEBUG触发打印调试信息,而COM_PROCESS_KILL用于终止连接。最后,检查是否具有RELOAD_ACL权限并加载数据。
本文总结了do_command函数的命令读取和执行流程,详细介绍了功能类命令的执行情况,为理解MySQL核心工作原理提供了深入洞察。