[2002] MySQL 套接字错误的三种原因及解决方法

当使用 MySQL 客户端软件(mysql、PHP、Perl 等)连接到 MySQL 服务器时,

  • 通过套接字“/tmp/mysql.sock MySQL
  • 尝试通过 unix : //tmp/mysql.sock

您可能会遇到类似这样的错误,导致无法连接。

这意味着
“无法通过套接字 /tmp/mysql.sock 连接到本地 MySQL 服务器

套接字是 Unix 域套接字(文件系统套接字),在本地系统内通信时,
服务器和客户端之间的通信通过该文件的输入和输出进行。
它充当中间媒介。

所以,我想解释一下为什么会出现这个错误以及如何解决它。

错误原因

原因 1:MySQL 服务器未运行

$ ps aux | grep mysqld

检查该进程是否存在。
如果不存在,则启动它。

$ sudo /etc/init.d/mysqld 状态 

原因 2. MySQL 服务器使用的 Unix 套接字路径与客户端软件使用的 Unix 套接字路径不同。

没有该文件或目录(尝试通过 unix:///tmp/mysql.sock 连接)

例如,上面的错误表明客户端正在查看 /tmp/mysql.sock,但
MySQL 服务器正在查看 /var/lib/mysql/mysql.sock。

这种情况有两种解决方案:

方案A:匹配客户

如果您查看 MySQL 配置文件 /etc/my.cnf,

[mysqld] socket=/var/lib/mysql/mysql.sock

路径就是这样写的,所以你只需要将客户端软件的套接字设置为相同的路径即可。

方案 B. 匹配 MySQL

请按如下方式修改 /etc/my.cnf 文件:

[mysqld] socket=与客户端相同的套接字路径 [client] socket=与客户端相同的套接字路径 [shell] 重写后,重启 MySQL。 [shell]$ sudo /etc/init.d/mysqld restart

原因 3:没有套接字文件

这个问题也有两种解决方法。

解决方案A:重启MySQL服务器即可恢复。

(*这是服务器重启,不是MySQL重启。)

$ sudo shutdown -r now

方案 B. 创建套接字文件

检查你的路径,请查看 /etc/my.cnf 文件。

$ touch /path/mysql.sock $ chown mysql:mysql /path/mysql.sock

在该路径创建套接字并重启 MySQL。

$ sudo /etc/init.d/mysql restart

以上是 MySQL 2002 错误的原因和解决方法。

隆重介绍我们公司 Beyond

自成立以来,Beyond 一直利用其作为多云集成商和托管服务提供商 (MSP) 所培养的技术能力,设计、构建和迁移使用各种云/服务器平台(包括 AWS、GCP、Azure 和 Oracle Cloud)的系统。

我们提供根据客户所需系统和应用程序的规格和功能进行优化的定制云/服务器环境,因此,如果您对云感兴趣,请随时与我们联系。

● 云/服务器设计与构建
● 云/服务器迁移
● 云/服务器运行、维护与监控(全年365天,每天24小时)

如果您觉得这篇文章有用,请点击【点赞】!
4
加载中...
4票,平均分:1.00/14
58,457
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者