(3)MySQL客户端与服务端的TCP/IP及socket连接方式

版权声明:转载请声明! https://blog.csdn.net/qq_34672033/article/details/90145120

MySQL客户端与服务端的TCP/IP及socket连接方式

客户端与服务器模型

  • 客户端与服务端模型
    Alt text

TCP/IP方式连接

  • 解释说明
    TCP/IP套接字方式是MySQL在任何平台下都提供的连接方式,也是网络中使用得最多的一种方式。这种方式在TCP/IP连接上建立一个基于网络的连接请求,一般情况下客户端在一台服务器上,MySQL实例在另一台服务器上,这两台机器通过一个TCP/IP网络连接。

例如,我可以在Windows服务器下请求一台远程Linux服务器下的MySQL实例.
通过TCP/IP方式连接(thin连接串方式)
Alt text

  • TCP/IP方式与数据库建立连接命令:
#通过网络连接串,TCP/IP:(用户名;密码;IP;port)
mysql -uroot -p123456 -h10.0.0.5

这里的客户端是Windows,它向一台Host IP为10.0.0.5的MySQL实例发起了TCP/IP连接请求,并且连接成功。之后,就可以对MySQL数据库进行一些数据库操作,如DDL和DML等。

  • 说明:

在通过TCP/IP连接到MySQL实例时,MySQL会先检查一张权限视图,用来判断发起请求的客户端IP是否允许连接到MySQL实例。

该视图在mysql库下,表名为user,查看命令如下:

use mysql;
select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| db01      | root |
| localhost | root |
+-----------+------+

(1)host代表此用户(root)只能通过localhost的ip访问此数据库。
(2)host:%,表示在任何IP段下连接该实例。host:10.0.0.%,表示在任何10.0.0.XXX段下所有IP可以连接该实例.

socket(套接字)连接方式

Unix域套接字
在Linux和Unix环境下,还可以使用Unix域套接字。Unix域套接字其实不是一个网络协议,所以只能MySQL客户端和数据库实例在同一台服务器上的情况下使用(本地连接)。你可以在配置文件中指定套接字文件的路径,如-socket=/tmp/mysql.sock。
当数据库实例启动后,我们可以通过下列命令来进行Unix域套接字文件的查找:
登录实例后查询

show variables like 'socket';
+---------------+------------------------------------------+
| Variable_name | Value                                    |
+---------------+------------------------------------------+
| socket        | /application/mysql-5.6.38/tmp/mysql.sock |
+---------------+------------------------------------------+

或者通过socket文件登录MySQL数据库中

#通过套接字文件,SOCKET:(用户名;密码;Socket路径)
mysql -uroot -p123456 -S /application/mysql/tmp/mysql.sock

这里的mysql.sock文件是在MySQL中定义出来的/tmp目录下找到!如果没有此文件也会引起启动不起来MySQL数据库.
Alt text

猜你喜欢

转载自blog.csdn.net/qq_34672033/article/details/90145120