客户端与服务器连接的过程
运行着的服务器程序和客户端程序本质上都是计算机上的一个进程,所以客户端进程向服务器进程发送请求并得到回复的过程本质上是一个进程间通信的过程!MySQL支持下边三种客户端进程和服务器进程的通信方式。
1.TCP/IP
真实环境中,数据库服务器进程和客户端进程可能运行在不同的主机中,它们之间必须通过网络来进行通讯。MySQL采用TCP作为服务器和客户端之间的网络通信协议。在网络环境下,每台计算机都有一个唯一的IP地址,如果某个进程有需要采用TCP协议进行网络通信方面的需求,可以向操作系统申请一个端口号,这是一个整数值,它的取值范围是0~65535。这样在网络中的其他进程就可以通过IP地址 + 端口号的方式来与这个进程连接,这样进程之间就可以通过网络进行通信了。MySQL服务器会默认监听3306端口。
2.Unix域套接字文件
如果我们的服务器进程和客户端进程都运行在同一台操作系统为类Unix的机器上的话,我们可以使用Unix域套接字文件来进行进程间通信。如果我们在启动客户端程序的时候指定的主机名为localhost,或者指定了–protocol=socket的启动参数,那服务器程序和客户端程序之间就可以通过Unix域套接字文件来进行通信了。MySQL服务器程序默认监听的Unix域套接字文件路径为/tmp/mysql.sock,客户端程序也默认连接到这个Unix域套接字文件。如果我们想改变这个默认路径,可以在启动服务器程序时指定socket参数,就像这样:
mysqld --socket=/tmp/a.txt
这样服务器启动后便会监听/tmp/a.txt。在服务器改变了默认的UNIX域套接字文件后,如果客户端程序想通过UNIX域套接字文件进行通信的话,也需要显式的指定连接到的UNIX域套接字文

本文介绍了MySQL客户端与服务器建立连接的三种方式:TCP/IP,Unix域套接字文件,以及在Windows系统中的命名管道和共享内存。TCP/IP是跨主机通信的主要方式,MySQL默认监听3306端口。在同一台Unix系统上,可以通过指定Unix域套接字文件(如默认的/tmp/mysql.sock)进行通信。对于Windows系统,MySQL支持命名管道和共享内存通信,但具体细节未展开说明。
最低0.47元/天 解锁文章
283

被折叠的 条评论
为什么被折叠?



