随机“在读'初始通信包丢失连接到MySQL服务器',系统错误:0”

有时我从MYSQL服务器得到错误:

Lost connection to MySQL server at 'reading initial communication packet', system error: 0 

我找不到原因,因为大部分时间都是这样,但是每个星期我都会遇到这个错误。 我GOOGLE了,但似乎只有用户永久有这个错误。 但在这种情况下,它只是有时候发生。 我检查hosts.allow和hosts.deny,但主机是允许的,而不是拒绝。

也有时我得到的错误:

 File './database/table.MYD' not found (Errcode: 24) 

它很less发生。 但是它每个星期发生一次,有时会发生在几天,但突然之间问题再次消失。 我已经检查了打开的文件限制。 这是2048年,应该是绝对的。 我也尝试增加打开文件的数量,但是没有效果。 我想,也许这个过程并没有closures一些表格。 但是这是不可能的,因为一段时间后,所有的事情再次确定,这个过程一次打开最多100个表格。 我也检查了MySQL的运行环境,并有930打开的文件。 我无法解释这一点。 过了一会儿,这是129。

我在SUSE-Linux机器上运行MySQL服务器。 我通过命令行工具“mysql”和MySQL-C连接器从另一个主机连接到MySQL服务器。 MySQL服务器版本是5.0.67。

现在问题解决了。

原来,我们的备份程序“mysqlhotcopy”是个问题。

原因是,mysqlhotcopy锁,我可以看到它在一个语句中,所有数据库的所有表,当调用没有数据库参数时,分别用数据库参数调用一个数据库的所有表。 由于我们的数据库可能包含数千个表,所以在我们当前的系统configuration下,这是不可能的。

所以我写了一个新的mysqlhotcopy脚本,到现在这个问题已经消失了。