mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...

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

客户端与服务器模型

客户端与服务端模型

mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区..._第1张图片

TCP/IP方式连接

解释说明

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

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

通过TCP/IP方式连接(thin连接串方式)

mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区..._第2张图片

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数据库.

mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区..._第3张图片

你可能感兴趣的:(mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...)