【发布时间】:2013-12-06 15:11:34
【问题描述】:
我偶尔会在我们一直在运行的 Solaris 10 设置上遇到reviewing an unsolved mystery,我注意到错误消息中的某些内容可能会提供帮助我解开谜团的线索。
错误消息是在 UNIX 域套接字上连接到 MySQL 时。
我这里有一个具体的问题,关于the error code at the end。
看到这三个错误信息:
mysql -S /tmp/missing.sock输出Can't connect to local MySQL server through socket '/tmp/missing.sock' (2)mysql -S /dev/null输出Can't connect to local MySQL server through socket '/dev/null' (95)我正在尝试解决的罕见且间歇性错误是
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (146)
最后的数字:这是 UNIX 域套接字错误代码吗?如果是这样,有什么地方可以查到那个代码的含义吗?
正如我所说,这是一个具体的问题。其他有用的意见应发布到the other question。
【问题讨论】:
-
这些错误代码来自 MySQL。
-
括号中的数字几乎肯定是系统错误编号,通常通过
errno报告,通过#include <errno.h>找到,尽管这些数字通常(在Solaris 上)在/usr/include/sys/errno.h中(但可以在其他地方,尤其是在 Linux 和 Mac OS X 上)。你可以编写一个程序#include <stdio.h> #include <string.h> int main(void) { puts(strerror(2)); puts(strerror(95)); puts(strerror(146)); return 0; }来查看 3 个错误。 2 可能是 ENOENT,没有这样的文件或目录; 95可能是ENOTSOCK(不是socket); 146 可能是 ENOTSUPP(不支持操作)。 -
@Marcell,根据乔纳森的回答,您的评论并不完全正确。代码来自 MySQL,貌似来自 Solaris。
标签: mysql solaris unix-socket