mysql客户端与服务端学习

转自:https://www.cnblogs.com/Sungeek/p/12200546.html,https://juejin.cn/post/7119878941589897247

1.连接方式

只考虑在Linux环境下,在不同主机之间是TCP/IP连接(不同主机间的网络通信),同一主机的客户端和服务端是socket连接(同一主机的进程间通信)。 

运行的Mysql客户端程序以及服务端程序其实都是操作系统上的一个进程,客户端和服务端的通信其实就是两个进程间的通信

1.1 TCP/IP

一般情况下客户端在一台服务器上,而MySQL实例在另一台服务器上,两台机器通过一个TCP/IP网络连接。通过TCP/IP连接MySQL实例时,MySQL会先检查一张权限表,用来判断发起请求的客户端IP是否允许连接到MySQL实例。该表就是MySQL库下面的user表。

连接例子:

[root@tse2 bin]# mysql -u root -p 123456 -P 3306 -h 192.168.0.2

 1.2 socket套接字

UNIX Socket连接方式其实不是一个网络协议,所以只能在MySQL客户端和数据库实例在同一台服务器上的情况下使用。连接例子:

[root@tse2 bin]# mysql -u root -p 123456 -S /mysql/tmp/mysql.sock

2.服务端处理过程

不论客户端和服务端如何通信,其实最终的效果就是客户端向服务端发送一段文本(SQL语句),服务端向客户端返回一段文本(处理结果),具体过程:

查循缓存在mysql8.0已移除该功能,维护缓存需要的成本高。 

//具体介绍可参考第二个链接,就不再复制了。

 

posted @ 2022-11-19 21:07  lypbendlf  阅读(170)  评论(0编辑  收藏  举报