MARIADB - 发送查询数据包时出错(不是 max_allowed_packet)

MARIADB - Error while sending QUERY packet (not max_allowed_packet)

我在使用 PHP7 脚本将数据保存到数据库 (MariaDB) 时遇到问题。该脚本在以前的托管包上运行良好,但在我的新 VPS.

上运行不正常
Warning: Error while sending QUERY packet. PID=1208 in ...

其他线程让我查看设置,但我的设置是:

我进一步审查了这个问题,发现查询本身没有任何问题(它在 phpMyAdmin 中执行良好)。

这似乎与在不关闭连接的情况下连续执行两个查询有关(第二个失败)

相同的脚本 运行 在旧主机上很好,它必须是一个设置 - 有人有什么想法吗?

非常感谢, 本

MariaDB 配置(/etc/my.cnf):

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1GB
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

innodb_file_per_table

max_connections=70
max_user_connections=30
wait_timeout=10
interactive_timeout=50
long_query_time=5

提问 1 分钟后,我回答了我自己的问题。这是问题所在:

wait_timeout=10

我以前的主机配置有 =180 这让我写得不好的脚本工作。在 =10 下,时间不足以完成任务。我现在已将它延长到 180,但实际上应该为此添加句柄。

我也有同样的问题,这非常烦人。查询速度 运行ning 很快,但在某些时候它们会无缘无故地挂起和锁定。 我有 60 秒,不认为增加它是一个好的解决方案。

这是否意味着脚本花费了 60 多秒并且数据库消失了?

但是我注意到 SQL 是 "deadlocking",因为它们挂在 SHOW PROCESSLIST 中。我只使用 SELECT + JOIN。所以 SQL 是问题所在...但是当我 运行 他们很快时...这太糟糕了。

你说是连接没有关闭,那是没有意义的。连接自动关闭。