[PHP] PDO对象与mysql的连接超时

在php中每一个new的PDO对象,都会去连接mysql,都会创建一条tcp连接.当pdo对象赋予的变量是一个的时候,那么他只会保持一个tcp连接,没有被引用的对象连接会直接断掉.如果不对这个对象进行任何操作,不传输任何数据,这条连接会在10秒后被mysql服务断掉.

如果使用了长连接参数,那么不管循环执行几次new PDO,只会有一个tcp连接

关于超时现象,网上的资料大部分说受两个参数interactive_timeout和wait_timeout影响,但是经过我测试,修改了这两个参数,如果10秒没有任何操作,连接仍然会被mysql断掉,不管是使不使用长连接参数.

如果每隔一秒传输数据,那么这条连接就会一直存在,状态一直是ESTABLISHED.如果是会出现两次执行时间较长,连接会被mysql断掉 对于需要长期执行的数据库操作脚本,比较稳妥的方式是每隔8秒左右重新new PDO对象,或者每隔循环一定次数确保在10秒内重新new PDO对象

测试过程如下:

开一个终端,不停的查看当前的连接情况 while true;do clear;date;netstat -altupn|grep 3306;sleep 1;done

另一个终端执行php脚本,可以暂时把长连接参数去掉,可以看到有很多tcp连接,状态是time_wait,是客户端主动关闭的. 而被mysql断掉的连接是close_wait状态,也就是被关闭一方,mysql服务里的连接是FIN_WAIT2

<?php
//$option=array(PDO::ATTR_PERSISTENT => true);
for($i=0;$i<10;$i++){
        $pdo=new PDO("mysql:host=127.0.0.1;dbname=my_test","root","xxx",$option);
        var_dump($pdo);
}
while(1){
sleep(5);
$pdo->query("set names utf8");

sleep(11);
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏陶士涵的菜地

[视频教程] 基于redis的消息队列实现与思考

使用redis的list列表来实现消息队列功能,相信大家都听过消息队列,但是在业务中可能并没有真正去使用它。在公司项目中正好有个场景使用到了消息队列,因此就来说...

6520
来自专栏安全漏洞环境学习

Joomla 3.4.6-RCE漏洞复现

Joomla是一套全球有名的CMS系统,基于PHP语言加上MySQL数据库所开发出来的WEB软件系统,目前最新版本是3.9.12。可以在多种不同的平台上部署并且...

15910
来自专栏测试游记

测试开发进阶(二十九)

rest_framework.generics.ListCreateAPIView

8510
来自专栏landv

一个100%Go语言的Web-Term-SSH 堡垒机项目

Docker pull docker pull mojotvcn/sshfortress

11140
来自专栏老码农的一亩三分地

IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成

CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的)。W3C也有新的版本更新,称为CS...

7620
来自专栏python前行者

百度搜索高级语法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

23610
来自专栏http://www.cnblogs.com

Linux yum 命令

yum (全称Yellow dog Update)命令是 RedHat 和 Fedora 以及 SUSE 中基于 rpm 软件包管理器。全称 Yellowdog...

11410
来自专栏云鼎实验室的专栏

【安全预警】PHP远程代码执行漏洞风险预警(CVE-2019-11043)

近日,腾讯云安全中心监测到PHP 官方披露了Nginx + php-fpm 部分配置下存在的远程代码执行高危漏洞,攻击者可利用漏洞对目标网站进行远程代码执行攻...

1.4K410
来自专栏信安之路

一处反序列化任意文件写入的漏洞分析

近日在审计某 CMS 时,发现一处反序列化任意写入文件的操作。其中的场景蛮有意思的,将其简化抽取出来做个 CTF 的题目丢给学弟(比较简单),在此做个记录。

7810
来自专栏Seebug漏洞平台

使用 Ghidra 分析 phpStudy 后门

这次事件已过去数日,该响应的也都响应了,虽然网上有很多厂商及组织发表了分析文章,但记载分析过程的不多,我只是想正儿八经用 Ghidra 从头到尾分析下。

7210

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励