gpt4 book ai didi

php - MySQL : Server has gone away

转载 作者:行者123 更新时间:2023-11-29 03:08:11 25 4
gpt4 key购买 nike

因此,当我使用无法解决的 PHP PDO 运行脚本时,我遇到了这个问题。我的脚本正在索引来自不同服务器上不同数据库的信息(主要是选择查询)。

当我开发脚本时,所有数据库都在同一台服务器上,一切都运行良好。现在我将数据库移动到三个不同的服务器上,我遇到了这个可怕的错误。

这就是我每次运行脚本时发生的情况:

脚本运行良好,直到运行这个简单查询的某个点(并且每次都在那里崩溃):

(注意,脚本在 PHP 中,我正在使用 PHP PDO 访问我的数据库并使用它)

SELECT *
FROM a_table
WHERE a_column = a_value.

然后它崩溃了,我得到了这个错误:

[a_date] - trunk - FATAL - Unmanaged Exception of type 'App_Exception'
File: /.../.../.../a_php_file.php
Line: a_line
Message: Error executing query.
Info:
Array
(
[0] => HY000
[1] => 2006
[2] => MySQL server has gone away
)

Trace:
#0 /.../.../.../a_php_file.php(124): App_something::a_metho('a_variable...')

找了很久还是没找到解决办法。

我试过:

  • 修改/etc/my.cnf 中的 max_allowed_pa​​cked(在发生崩溃的 sql 上)将其从 16M 设置为 64M(即使查询返回的结果实际上并没有那么大)。

  • 修改 max_connections 以允许更多连接,以防我忘记终止一些已经存在的连接。

  • 检查网络问题

  • 许多其他小事情,例如从主机到远程 sql server 的连接。

真正奇怪的是,如果我单独运行查询,它运行良好,如果所有数据库都在同一台服务器上,它也运行良好。

此时我真的迷路了,不知道问题出在哪里,这就是为什么我要寻求帮助或只是提示的原因。

这是在异常时崩溃的方法:

public static function my_method($my_mysql_WHERE_variable)
{
//======================================
// cached?
//======================================
if(isset(self::$_table1[$my_mysql_WHERE_variable])) {
return self::$_table1[$my_mysql_WHERE_variable];
}

$pdo = my_App::getConnection();

$query = "SELECT *
FROM
a_table
WHERE
a_column = :my_mysql_WHERE_variable";
$stmt = $pdo->prepare($query);

if($stmt === false) {
**---------------IT CRASHES HERE-----------**
throw new my_App_Exception("Error executing query.\nInfo:\n" . print_r($pdo->errorInfo(), true));
}
.
.
.
return $a_value;
}

最佳答案

您可能遇到了数据库连接问题。您是否不小心在其他地方关闭了与此数据库的数据库连接?您是否没有为尝试运行的查询引用正确的连接?

关于php - MySQL : Server has gone away,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12287206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com