远程 MySQL 服务器返回:MySQL 服务器已消失/发送查询数据包时出错

远程 MySQL 服务器返回:MySQL 服务器已消失/发送查询数据包时出错

我有 2 台服务器(均运行 Ubuntu 12.04)

APP 服务器

  • 跑步apache2PHP7.2还有一个CakePHP 2.0APP

数据库服务器

  • 跑步mysql 5.7

当我尝试向数据库插入一个大数据块(起始大小 > 40MB)时,mysql 服务器向 APP 返回以下错误:

Error while sending QUERY packet

General error: 2006 MySQL server has gone away

另外/var/log/mysql/error.log我发现了以下错误:

[Note] Aborted connection 123456 to db: 'database_name' user: 'database_username' host: 'remote_ip_address' (Got an error reading communication packets)


PHP.ini,我已经达到最大值:max_execution_timememory_limit 在 MySQL 配置中,我已经达到最大值wait_timeout,,,net_read_timeoutnet_write_timeoutmax_allowed_packet

我已经检查过free -m是否有足够的 RAM。我没有使用持久连接,我已经测试了多次并且每次看起来都在 19-22 秒之间失败。我没有其他空闲的 mysql 进程。

你们能建议我如何进一步调试吗?我没有任何想法。也许是防火墙问题?但我该如何调试。谢谢!

答案1

甚至无法LONGBLOB处理超过 4GB 的数据;当然更不可能处理 55GB 的数据。不要计划将这么大的单元格放入 MySQL 表中。

您可以将其分成几块,但这很麻烦。

相反,创建一个文件,然后让 URL 提供一种访问该文件的方法——只需在网页上处理 JPG 即可。

相关内容