首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP PDO查询在不同的MySQL连接上等待请求,返回"Mysql Server已离开“

问PHP PDO查询在不同的MySQL连接上等待请求,返回"Mysql Server已离开“
EN

Stack Overflow用户
提问于 2011-09-13 23:20:53
回答 2查看 945关注 0票数 3

我有一个网站的问题,连接到一个MySQL数据库使用两种类型的连接在不同的部分:一些PDO,一些mysql_connect()。

网站的第一部分是使用非常经典的'mysql_query()‘PHP函数请求MySQL。这部分对地理数据进行了一些繁重的查询。其中一些请求(已经优化)需要很长时间。

网站的另一部分是最近的,通过PDO连接使用Doctrine制作的。

问题是,当一个大进程在一个浏览器页面中运行时(处理和返回页面可能需要大约1分钟),如果用户打开另一个页面,PDO连接处于休眠模式,并阻止加载整个页面。在60s ( MySQL的wait_timeout)之后,连接被终止,并且PDO收到异常“MySQL服务器已消失”。

奇怪的是,只有经典的mysql_connect()和mysql_query()的其他页面可以毫无问题地并行运行,只有PDO查询会停滞不前并最终死亡。

任何意见都会非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-14 22:13:10

结束这个问题,它实际上与php会话在写入时被挂起,阻止其他进程运行有关。session_write_close()解决了这个问题。

票数 1
EN

Stack Overflow用户

发布于 2015-07-03 18:05:04

连接关闭的原因有很多。

参考:https://dev.mysql.com/doc/refman/5.0/en/gone-away.html

我在使用PDO时也遇到了类似的问题,如果连接休眠超过一分钟,主机管理员就会终止连接。因此,我想出了我自己的类,它将包装PDO类。这将检测连接是否关闭,并在查询执行时尝试重新连接。

下面的答案

PDO: MySQL server has gone away

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7404364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档