版权声明:转载请声明! https://blog.csdn.net/qq_34672033/article/details/90145120
MySQL客户端与服务端的TCP/IP及socket连接方式
客户端与服务器模型
- 客户端与服务端模型
TCP/IP方式连接
- 解释说明
TCP/IP套接字方式
是MySQL在任何平台下都提供的连接方式
,也是网络中使用得最多的一种方式。这种方式在TCP/IP连接上建立一个基于网络的连接请求,一般情况下客户端在一台服务器上,MySQL实例在另一台服务器上,这两台机器通过一个TCP/IP网络连接。
例如,我可以在Windows服务器下请求一台远程Linux服务器下的MySQL实例.
通过TCP/IP方式连接(thin连接串方式)
- 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数据库.