我遇到了将数据保存到数据库(MariaDB)的PHP7脚本的问题。该脚本在以前的托管包上运行良好,但在我的新VPS上没有。
Warning: Error while sending QUERY packet. PID=1208 in ...
其他线程让我查看设置,但我的设置是:
我已经进一步审查了这个问题,发现查询本身没有任何问题(它在phpMyAdmin中执行正常)。
这似乎与紧密连续执行两个查询而不关闭连接(第二个失败)有关。
同样的脚本在旧主机上运行正常,它必须是一个设置 - 有没有人有任何想法?
非常感谢, 本
MariaDB config(/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
答案 0 :(得分:0)
wait_timeout=10
我以前的托管配置有 = 180 ,这使得编写糟糕的脚本无法正常工作。在 = 10 下,它不足以完成任务。我现在把它加长到 180 ,但是应该为此添加句柄。
答案 1 :(得分:0)
我也遇到同样的问题,这很烦人。查询运行很快,但是在某些时候它们一直挂起并锁定,没有任何原因可以解释。 我有60秒的时间,不认为增加它是一个很好的解决方案。
这是否意味着脚本要花费60秒钟以上并且数据库已消失?
但是,我注意到SQL处于“死锁”状态,因为它们挂在SHOW PROCESSLIST中。我只使用SELECT + JOIN。因此,SQL是问题所在……但是当我运行它们时,它们很快……太奇怪了。
您说的是连接没有关闭,但这没有任何意义。连接自动关闭。