云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

  • A+
所属分类:MySQL

问题说明


云服务器 ECS 服务器 MySQL Socket 与 TCP 两种连接方式的使用方法。

处理办法


MySQL 官方关于 sock 说明:

A Unix socket file is used if you don't specify a host name or if you specify the special host name localhost.

即:连接时未指定 host 或者使用 localhost 的情况下,使用 mysql.sock

云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

使用 mysql -uroot -p 登录以后如下 (这是未指定主机 host )

云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

使用 mysql -hlocalhost -uroot -p 登录以后,如下(指定主机 -h 为 localhost )

云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

使用 mysql -h127.0.0.1 -uroot -p 或者在其他服务器中连接本服务器中的 MySQL 进行登录,也就是通过 tcp/ip 的方式进行连接,如下:

云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

这也是相关教程在无法连接到 MySQL 提示 sock 不存在或者无法找到时,建议修改连接 socket 或者 localhost 为 127.0.0.1 的原因。因为 sock 异常时,mysql 其实还是在进行端口监听的。

 

更多信息


如何决定 MySQL 监听的是 tcp/ip 的端口还是 Unix 的 socket ?

在 MySQL 中有一个参数 skip-networking,默认是注释掉,也就是既有套接字 socket 也有端口在监听。

当启用它以后,则只使用 socket 通信,如下:

云服务器 ECS 服务器 MySQL Socket 连接与 TCP 两种连接方式说明

这个也就是在未看到默认端口 3006 监听的情况下依旧可以使用 msyql 的一种情况,可以检查配置文件中是否设置了这个参数。

 

如何调整 MySQL 监听的 IP?

在 MySQL 配置文件 my.cnf 中 [mysqld中] 下添加

bind-address=127.0.0.1表示监听本地
bind-address=服务器的内网地址、外网地址或者是0.0.0.0全网监听
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: