诊断偶尔出现的 MySQL 故障

诊断偶尔出现的 MySQL 故障

我有一些 C++ 应用程序通过 Ubuntu 10.04 上的 unixODBC 访问我们的 MySQL 数据库。

在过去的几周里,每隔几周我都会在我们的错误日志中看到一次这个错误:

[unixODBC][MySQL][ODBC 3.51 驱动程序]在“读取初始通信包”时与 MySQL 服务器失去连接,系统错误:9

它源自我在 C++ 代码中使用的 ODBC 库,显然来自 ODBC 驱动程序。

除此之外,系统运行良好,每天处理数千个查询。有人能解释一下这可能表明什么,如何诊断,下一步该检查什么吗?

有人知道这个错误代码到底从何而来,以及我如何查找“9”的含义吗?

编辑:我还要添加这是一个本地服务器,即 MySQL 服务器与 C++ 代码在同一台机器上运行。

答案1

意思是“坏文件号”:http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html

基本上,当驱动程序尝试与套接字通信时,套接字无效。通常这是一个网络问题,但我只见过这种情况每次都会发生,而不是偶尔发生。

如果您能够以某种方式重现此问题,它就会对原因有所解释,但由于您的应用程序正在运行,因此很难追踪。

答案2

  1. 您的环境是否已更新?您可以复制它并确认错误吗?

  2. 能否搭建一个Ubuntu 12.04环境,并重现该错误?

如果这两个问题的答案都是“是”,请考虑在 Launchpad 上或直接向 UnixODBC 项目提交错误。

相关内容