mysql proxy源代码初探
Skylin 今天花了半天时间看了下mysql proxy源代码,主要是找出MYSQL协议部分,下面我来说一下过程,以便记录一下。
第一步:找出重点结构
1.network_mysqld_config
network_mysqld_config结构 在network-mysqld.h
主要用于mysqlproxy的整体配置结构,存储的一些服务器IP和端口地址。用于mysql proxy和链接客户端使用
2.netword_mysqld
netword_mysqld结构 network-mysqld.h
个人觉得主要存储mysql proxy的事件驱动机制和network_mysqld_config结构,还会存储一个HASH表结构,这个HASH表结构中存储的是一些功能函数,比如connections_select,config_select,help_select,authors_select函数,这些函数在mysql-proxy.c文件中,这个结构和network_mysqld_config结构是两个全局结构,基本上其他结构都会用到这两个结构体。
3.network_mysqld_table
netword_mysqld_table结构 network-mysqld.h
这个结构就是用在network_mysqld中的HASH表中的,用于存储上面HASH表存储的那几个功能函数。
4.netword_mysqld_con
netword_mysqld_con结构 network-mysqld.h
这个结构表示mysql proxy服务器和客户端的链接状态和请求状态,其中存储着套接字信息和MYSQL链接请求信息,还有模拟MYSQL协议的功能函数信息(以插件形式存在)
5.network_socket
network_socket结构 network-socket.h
里面存储的就是mysql proxy服务端和客户端的sockaddr信息了,包括IP地址字符串信息,主要使用在netword_mysqld_con结构中。其中还用到了network_address,network_queue结构,好像还包括用户名密码(应该是MYSQL的)
基本上主要结构体就是这些了,现在我已经在分析模拟MYSQL协议的地方了,有时间我会在继续写的。
Posted in C/C++ |