Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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
Php 数据库移动后的SQL错误_Php_Mysql_Pdo - Fatal编程技术网

Php 数据库移动后的SQL错误

Php 数据库移动后的SQL错误,php,mysql,pdo,Php,Mysql,Pdo,这让我感到困惑,我相信这是一个简单的解决办法 我通过数据库从一台服务器移动到另一台服务器。创建了具有正确权限的新帐户等 在我的一些脚本中,mySQL输出以下错误: PHP警告:发送查询数据包时出错。PID= 我检查了max_allowed_数据包,新旧服务器之间的数据包是相同的 我正在运行的SQL语句是: UPDATE TABLE WHERE ID = :ID 数据包大小应该是无关的;ID只是一个数字 与其他UPDATE语句一样,权限也可以 在副本方面,我缺少什么吗?尝试将mysql配置中的w

这让我感到困惑,我相信这是一个简单的解决办法

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

在我的一些脚本中,mySQL输出以下错误: PHP警告:发送查询数据包时出错。PID=

我检查了max_allowed_数据包,新旧服务器之间的数据包是相同的

我正在运行的SQL语句是:

UPDATE TABLE WHERE ID = :ID
数据包大小应该是无关的;ID只是一个数字

与其他UPDATE语句一样,权限也可以


在副本方面,我缺少什么吗?

尝试将mysql配置中的
wait\u timeout
设置为更高的值,例如28800


Php可能由于较低的
wait\u timeout
值而丢失与mysql守护程序的连接。

连接可能由于超时设置而中断。检查您的等待超时值

SHOW SESSION VARIABLES LIKE "wait_timeout"; 
SHOW GLOBAL VARIABLES LIKE "wait_timeout"; 
如果需要,设置为更高的值

SET @@GLOBAL.wait_timeout = 28800
这也可能是设置允许的最大数据包大小的问题

要更改设置,请在my.ini文件中。在文件中的[mysqld]下包含一行

max_allowed_packet=500M

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

在每次数据库交互之后,您的代码是否执行了适当的错误检查和诊断显示/日志记录?如果没有,现在你有一个很好的理由来修复它。实际错误可能发生在其他地方,但代码忽略了它在不一致状态下的操作,因此发送数据包时出错。我很惊讶您的服务器上也没有收到查询语法错误。mysql之外可能设置了一个最大阈值,该阈值会拒绝请求或向数据包中添加大量数据,从而导致您收到错误。我会向您的主机提供商提交一份支持案例,以获取他们对该问题的意见。@SashaPachev是的,我会对PDO和一般错误以及诊断日志进行错误检查。您使用的是持久连接吗?这样做了!我还要再等八个小时才能给你赏金