mysql 数据库连接错误

mysql 数据库连接错误

我的应用程序需要非常频繁地连接到另一台机器上的 mysql 数据库。但是我在连接时经常出错;我通常最终可以连接,但需要重试多次。我收到的错误消息是:

Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2

我已阅读此处的信息:http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html以及对这个错误的评论http://bugs.mysql.com/bug.php?id=28359

如您所见,有相当多的连接被中止:

mysql> 显示类似“Aborted_connects”的全局状态;
+------------------+-------+
| 变量名称 | 值 |
+------------------+-------+
| 中止连接 | 2540 |
+------------------+-------+

我将超时时间从 5 秒增加到 15 秒:

mysql> 显示类似“connect_timeout”的变量;
+-----------------+-------+
| 变量名称 | 值 |
+-----------------+-------+
| 连接超时 | 15 |
+-----------------+-------+

但这没有帮助。有什么建议可以调试吗?它使数据库交互变得非常慢,平均需要尝试连接 5 次才能正常工作。

我还没有尝试在应用程序的整个生命周期内保持连接打开,这样会更好吗?如何防止连接关闭?

如果它有助于解决问题,则计算机是 Windows 7 32 位,而 mysql 服务器在 Debian Linux 上。

答案1

浏览所有错误详细信息和报告后,我怀疑这里存在网络或客户端问题。某些东西要么损坏了 mysql 数据,要么给 mysql 数据增加了太多延迟。

在畅通的网络上,执行 wireshark 跟踪并检查对话情况。确保任何地方都没有进行流量整形。似乎只有 64 位问题,因此请检查 32 位版本以确保它是相同的问题。检查 Windows XP 机器 - M$ 对 Vista 上的网络堆栈做了一些奇怪的事情,这让它很糟糕 - 有点时间!我们在 Vista 和 Win7 机器上遇到了无数的网络问题!

如果您确实管理了 wireshark 跟踪,请使用 pastebin 并贴上链接,因为我想我们都想看一看。

答案2

最后发现这是由于机器上的一般网络问题。解决方案如下:Windows 7 上的网络性能问题

相关内容