[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[2002] MySQL套接字错误的原因和补救措施

你好。我叫 Goto,来自网络系统部门。

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

  • 套接字'/tmp/mysql.sock '
  • 没有这样的文件或目录(尝试通过unix连接: ///tmp/mysql.sock

由于此类错误,您可能无法连接。

这意味着
“无法通过套接字 /tmp/mysql.sock 连接到本地 MySQL 服务器。” (我刚刚翻译的)

套接字是Unix域套接字(文件系统套接字),在本地系统内部通信时,
服务器和客户端之间通过该文件的输入和输出进行通信。
这是一个中间人的角色。

现在,我想解释一下此类错误的原因以及如何处理它们。

原因1.MySQL服务器未启动

1
$ ps aux | mysqld

检查进程是否存在。
如果没有,请启动它。

1
$ 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,

1
[mysqld]套接字=/var/lib/mysql/mysql.sock

既然路径是这样写的,那么只需将客户端软件的socket设置为同一个路径即可。

方案B.匹配MySQL

让我们重写/etc/my.cnf,如下所示。

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

原因3.本来就没有socket文件。

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

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

(*重新启动服务器,而不是mysql。)

1
$ sudo shutdown -r 现在

解决方案 B. 创建套接字文件

检查/etc/my.cnf并检查路径后,

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

在该路径上创建一个套接字并重新启动 MySQL。

1
$ sudo /etc/init.d/mysql restart

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

如果您觉得这篇文章有帮助,请点赞!
4
加载中...
4 票,平均:1.00 / 14
56,351
X Facebook 哈特纳书签 口袋
[2026.6.30 Amazon Linux 2支持端] Amazon Linux服务器迁移解决方案

[2026.6.30 Amazon Linux 2支持端] Amazon Linux服务器迁移解决方案

写这篇文章的人

关于作者