2015-11-19 100 views
2

这让我感到困惑,我相信这是一个简单的修复。SQL错误发布数据库移动

我将数据库从一台服务器移到另一台服务器。创建一个具有正确权限的新帐户等。

在我的一些脚本中,mySQL输出此错误: PHP警告:发送QUERY数据包时发生错误。 PID =

我检查了max_allowed_pa​​cket,旧的和新的服务器都是一样的。

我运行的SQL语句是:

UPDATE TABLE WHERE ID = :ID 

包大小应是文不对题; ID只是一个数字。

权限很好,因为其他UPDATE语句有效。

有什么我失踪的副本?

+1

在非常数据库交互之后,您的代码是否会执行相应的错误检查和诊断显示/日志记录?如果没有,现在你有一个很好的理由来解决它。实际的错误可能发生在其他地方,但是代码忽略它在不一致的状态下操作,从而发送包的错误。 –

+3

我很惊讶你没有在你的服务器上收到查询语法错误 –

+0

。可能会在mysql之外设置一个最大阈值来拒绝请求,或向数据包添加更多的数据,从而导致您收到错误。我会向您的托管服务提供商提交支持案例,以便就此问题提供意见。 –

回答

2

尝试设置wait_timeout在你的MySQL配置较高的值,例如28800

腓可能会潜在地失去了与MySQL守护进程的连接,由于低wait_timeout值。

+0

这样做了!我必须再等八个小时才能奖赏你的赏金 –

0

由于超时设置,连接可能已经下降。检查WAIT_TIMEOUT值

SHOW SESSION VARIABLES LIKE "wait_timeout"; 
SHOW GLOBAL VARIABLES LIKE "wait_timeout"; 

设置更高的值,如果需要

SET @@GLOBAL.wait_timeout = 28800 

这可能是也max_allowed_pa​​cket的大小

的设置有问题要更改设置,在my.ini的文件。在您的文件中包含[mysqld]下的单行

max_allowed_packet=500M 

现在重新启动MySQL服务,您就完成了。