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

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

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

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

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

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

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

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

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

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

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

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

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

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

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

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

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

原因1.MySQL服务器未启动

$ ps aux | 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]套接字=/var/lib/mysql/mysql.sock

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

方案B.匹配MySQL

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

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

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

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

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

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

$ sudo shutdown -r 现在

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

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

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

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

$ sudo /etc/init.d/mysql restart

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

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

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者