我有 2 台服务器(均运行 Ubuntu 12.04)
APP 服务器
- 跑步
apache2
,PHP7.2
还有一个CakePHP 2.0
APP
数据库服务器
- 跑步
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_time
,memory_limit
在 MySQL 配置中,我已经达到最大值wait_timeout
,,,net_read_timeout
net_write_timeout
max_allowed_packet
我已经检查过free -m
是否有足够的 RAM。我没有使用持久连接,我已经测试了多次并且每次看起来都在 19-22 秒之间失败。我没有其他空闲的 mysql 进程。
你们能建议我如何进一步调试吗?我没有任何想法。也许是防火墙问题?但我该如何调试。谢谢!
答案1
甚至无法LONGBLOB
处理超过 4GB 的数据;当然更不可能处理 55GB 的数据。不要计划将这么大的单元格放入 MySQL 表中。
您可以将其分成几块,但这很麻烦。
相反,创建一个文件,然后让 URL 提供一种访问该文件的方法——只需在网页上处理 JPG 即可。