1,  进入 D:\mariadb-10.0.13\bld目录下,双击MySQL.sln文件,在visualstudio 2013中打开它。在“解决方案管理器”中,单击“mysqld”左侧的三角形,将其展开,再单击Source Files左侧三角形,展开源文件,可以看到一个名称为main.cc文件,它是mysqld数据库服务器的启动入口,双击打开,即看到main()入口函数。mysqld数据库服务器就是从这里开始启动的。

mysql启动流程 mysql启动过程详解_MariaDB

2,移动光标到“int main(intargc, char **argv)”代码行,而后单击键盘上F9键,下一个断点,然后单击工具栏中的“本地Windows调试器”,以调试模式启动mysqld数据库服务器。当调试到所设断点处程序立刻停下来,接下来就可以反复按F11键,逐语句调试代码,了解mysqld数据库服务器的整个启动过程了。注意,在跟踪代码过程中,有些函数过程不需要了解,此时可以按F10键跳过一个函数过程,如果已经处于某个函数过程中,又不想继续下去,可以按Shift+F11键,跳出当前所在的函数过程。

3,mysqld的启动过程比较复杂,了解启动流程时,许多细节可以先忽略掉,抓住其主要流程即可。mysqld数据库服务器的主要启动流程如下所示:

mysql启动流程 mysql启动过程详解_数据库服务器_02

mysql启动流程 mysql启动过程详解_数据库服务器_03

在客户端与服务器通信时,mysqld支持三种方式,分别为:命名管道、套接字、共享内存,启动服务器时可以分别使用相应参数打开(mysqld  --enable-named-pipe、mysqld.exe  --shared-memory)。套接字方式是网络中使用最多的一种方式,mysqld默认使用此种方式与客户端进行通信。在handle_connections_methods()中可以看到有关代码,当采用套接字通信时,将会调用handle_connections_sockets()进行处理。我们只分析使用套接字进行通信的方式。

到这里,mysqld服务器就启动完成了。在接下来的分析中,我们将打开客户端,通过输入相应的命令,进一步分析mysqld服务是如何处理客户端发来的请求的。