首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Mysql在60秒后就要消失了

问PHP Mysql在60秒后就要消失了
EN

Stack Overflow用户
提问于 2016-08-10 01:03:53
回答 1查看 788关注 0票数 0

首先,我已经经历过一些相关的职位,但没有运气。

我遵循了MySQL server has gone away - in exactly 60 seconds中提供的解决方案,在开始时设置了这个值:

代码语言:javascript
复制
ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);

但这一错误似乎依然存在。

该错误发生在执行查询之前:用于处理mysql操作的数据库类,执行ping (mysqli_ping)以刷新连接(猜这就是使用mysql ping的意思),但在某些地方,~60它抛出此警告:

警告: mysqli_ping():MySQL服务器在.

我错过了什么吗?

最新消息我弄清楚了问题到底在哪里。

我会进一步解释我的工作流程。我建立了两个不同的DB连接,第一个用于检索数据,第二个用于插入所获得的所有数据(逐行)。由于第二个连接是正在执行操作的连接,我认为这是一个产生服务器的连接已经消失了,但是事实证明这个错误是由空闲连接(第一个)引起的。

我所做的解决办法是在查询数据之后关闭连接(第一个连接将不再使用)。

第二个连接有足够的时间不达到超时。

第一个连接到远程数据库,第二个连接到本地服务器,因此我完全控制了第二个数据库。

连接到远程MySQL服务器的奇怪之处是,当我从我的PHP脚本连接到60秒左右之后,它就达到了超时,但是如果我从控制台连接它,连接就不是超时了。你知道我怎么才能避免那个超时(服务器已经消失了)?正如我前面所说的,我已经有了解决这个问题的方法,但是我想知道为什么PHP在大约60秒后就会超时,而在控制台上我可以保持每小时的连接。

EN

回答 1

Stack Overflow用户

发布于 2016-08-10 01:21:13

这些信息表明,您正在设置更改客户端连接,此问题与服务器有关:关闭连接的是服务器。若要更改此配置,必须更改wait_timeout在my.cnf上的值

资料来源:http://dev.mysql.com/doc/refman/5.7/en/gone-away.html timeout

还有一件事:改变这可能不是你能做的最好的事情。首先尝试改进您的查询。

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

https://stackoverflow.com/questions/38862691

复制
相关文章

相似问题

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