Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何理解;can';“t连接”;mysql错误消息?_Mysql_Sql_Mysql Error 2003 - Fatal编程技术网

如何理解;can';“t连接”;mysql错误消息?

如何理解;can';“t连接”;mysql错误消息?,mysql,sql,mysql-error-2003,Mysql,Sql,Mysql Error 2003,我收到以下错误消息: SQLSTATE[HY000][2003]无法连接到上的MySQL服务器 ‘192.168.50.45’(4) 我将如何解析它(我有HY000,我有2003,我有(4)。HY000是一个非常通用的ODBC级错误代码,是MySQL特定的错误代码,这意味着初始服务器连接失败。4是MySQL驱动程序尝试进行的失败操作系统级调用的错误代码。(例如,在Linux上,您将看到“(111)”当连接被拒绝时,因为调用connect()失败,错误代码为ECONREFUSE,其值为111。)使

我收到以下错误消息:

SQLSTATE[HY000][2003]无法连接到上的MySQL服务器 ‘192.168.50.45’(4)


我将如何解析它(我有HY000,我有2003,我有(4)。

HY000是一个非常通用的ODBC级错误代码,是MySQL特定的错误代码,这意味着初始服务器连接失败。4是MySQL驱动程序尝试进行的失败操作系统级调用的错误代码。(例如,在Linux上,您将看到“(111)”当连接被拒绝时,因为调用
connect()
失败,错误代码为ECONREFUSE,其值为111。)

使用MySQL附带的perror工具:

shell> perror 4
OS error code   4:  Interrupted system call

如果报告了错误,则可能是因为简单的连接超时(errno 111)

FWIW,我们花了大约2-3个月的时间以各种方式对此进行了研究,得出结论(至少对我们而言),(4)当网络中的数据太满,无法在正常时间内完成连接时,就会发生错误。根据我们的调查,(4)发生在握手过程的中途。 您可以在unix环境中通过使用“netem”来模拟网络拥塞来看到这一点

快速解决方案是增加连接超时参数。这将隐藏任何(4)个错误,但可能不是问题的解决方案。
真正的解决方案是查看数据库端当时发生的情况。如果发生这种情况时正在处理大量数据,那么最好将其拆分为较小的数据块,甚至将处理过程传送到另一台服务器(如果您有这种特权)。

我碰巧遇到了这个问题。请增加连接超时工作我最后还是放弃了。

我只是在为同样的问题挣扎

禁用DNS主机名查找为我解决了这个问题

[mysqld] ... ... 跳过名称解析


别忘了重新启动MySQL以使其生效。

@cdhowie,而在其他情况下,您可能是对的,有一个特殊的错误(4)是一个mysql客户端库错误,由握手失败引起。它实际上在源代码中可见。正常原因是太多的数据导致内部超时。为连接留出“空间”通常会在不掩盖问题的情况下对其进行排序,如增加超时或增加带宽。

你说的什么“我有HY000,我有2003,我有(4)"可能在这里回答:另一个可能的解决方案:@JohnP-那边是代码111,我有代码4OS错误代码4:中断系统调用-至少尽我所能…你确定你的mysql安装已启动并处于活动状态,并且正在接受连接吗?好的,那么我怎么知道4是什么意思?我在UbuntuYou不会,除非你知道exac哪个系统调用失败。