msyql request quit

背景:php发布新代码后,发现时不时的会出现白页,用wireshark抓包分析后,提示:msyql request quit

新代码中新加了个逻辑,就是创建连接时,多写了一个,导致这个问题产生。一开始以为是数据库连接池满了,但是DBA说msyql request quit这个是客户端主动断开连接的,mysql连接数根本没满。

怀着疑惑的心情进行了如下探测之旅。

1、将虚拟机的mysql起起来,设定最大连接数为15.

set GLOBAL max_connections=200 

2、检测步骤为:

show variables like 'max_connections';

3、利用java的jdbc+多线程直接连接数据库,得出结果为:too many connections,这里来看,mysql jdbc connector做的还是不错的。

3.1 jdbc源码

3.2 线程池源码如下:

 ExecutorService executorService = Executors.newCachedThreadPool();
        for (int i = 0; i < 5; i++){
            executorService.execute(new MyClient());
        }
        executorService.shutdown();

3.3 mysql jdbc maven坐标

4、tcpdump命令1

 tcpdump -i eth0 -w dump.pcap2 -A

tcp dump命令2 

5、用wireshark打开上面产生的dump文件 ,然后找到tcp流,注意:这里可以用过滤器找出只要mysql的

5.1 wireshark下载,见官方

6、Call to a member function GetRow() on a non-object

这个错误是因为没有连接上数据库。

7、php的for循环

for($i=0;$i<15;$i++){}

注意引用变量前面要加$

8、php echo如何换行,页面上用</br>

9、注意:mysql控制台输出的show processlist和在linux下用netstat -an |grep 3306效果是一样的。

转载于:https://my.oschina.net/windows20/blog/1545036

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值