您现在的位置:主页 > 技术中心 > 数据库技术 > Mysql

Mysql源码学习——Connection Manager(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:54 点击:

  func->end_thread= one_thread_per_connection_end;

}

 

  

 

   原来就是设置了一个结构体中scheduler_functions的参数,只不过这些参数是一些函数指针罢了,也就是说在具体的调用中,

 

只需要调用add_connection或end_thread即可,不需要知道到底是调用了哪个函数,这大概就是一种变形的多态性吧。

 

2.初始化网络配置

 

   网络配置比较简单,就是设置端口,创建套接字,绑定端口,监听端口。实现全部集中在network_init函数中,由于这个函数确

 

实没什么好讲的,如果对socket不熟悉的话,可以去网上搜索下相关知识。这里直接给出相应的伪代码:

 

network_init

{

    set_ports; //设置端口号,#define MYSQL_PORT            3306

    socket;//创建套接字

    bind;       //绑定端口号

    listen;//监听端口号

}

 

3.连接的方式

 

   进程间通信的方式不止是SOCKET,还有其他很多方式。Mysql支持三种连接方式:namepipe、socket和shared memory,

 

即命名管道、套接字和共享内存的方式。这三种方式是可以共存的。默认只使用套接字。

 

      TCP/IP套接字方式是MySQL在任何平台下都提供的连接方式,也是网络中使用得最多的一种方式。这种方式在TCP/IP连接上建立

 

一个基于网络的连接请求,一般情况下客户端在一台服务器上,而MySQL实例在另一台服务器上,这两台机器通过一个TCP/IP网络连接。

 

例如,我可以在Windows服务器下请求一台远程Linux服务器下的MySQL实例。

 

     在Windows 2000、Windows XP、Windows 2003和Windows Vista以及在此之后的Windows操作系统中,如果两个需要通

 

信的进程在同一台服务器上,那么可以使用命名管道,SQL Server数据库默认安装后的本地连接也使用命名管道。在MySQL数据库中,

 

需在配置文件中启用--enable-named-pipe选项。在MySQL 4.1之后的版本中,MySQL还提供了共享内存的连接方式,在配置文件中

 

添加--shared-memory。如果想使用共享内存的方式,在连接时,Mysql客户端还必须使用-protocol=memory选项。

 

     启动时可以通过下面的参数进行设置。

 

mysqld.exe --enable-named-pipe

mysqld.exe --shared-memory

 

   

 

除了在启动时进行参数设置外,也可以通过修改MY.INI文件进行设置。我们来看下源码中选择连接方式的分支函数handle_connections_methods:

 

handle_connections_methods()

{

if (hPipe != INVALID_HANDLE_VALUE)

{

       handler_count++;

       if (pthread_create(&hThread,&connection_attrib,

               handle_connections_namedpipes, 0))

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

推荐热点

  • mysql-mmm
  • mysqldump命令——MySQL数据库备份还原
  • Oracle数据导入MySQL的快捷工具:MySQL Migration Tool
  • 简简单单储存过程——循环一个select结果集
  • MySQL数据库十大优化技巧
  • Mysql安装笔记
  • Mysql主主复制架构配置
  • Mysql的Procedure 参数为NULL问题分析
  • MySQL Stmt预处理提高效率问题的小研究
?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
Copyright © 2004-2024 上海卓卓网络科技有限公司