使用下面的命令:
mysql> show full processlist;
可以看到mysql中存在多少sleep连接,有时候会发现,明明已经将程序关闭了,连接怎么还存在呢?
笔者就是在使用navicat的时候发现这个问题的,当使用navicat连接数据库之后,如果在短时间内关闭navicat,就不会存在sleep连接问题,但是如果长时间之后比如十几二十分钟之后,再关闭navicat,那么之前的连接就会一直保持sleep状态,占用mysql的连接数。
其原因主要还是因为某些未知的bug导致连接没有被正确的关闭,具体原因这里不深究,这里讲一下怎么避免这种情况。
安装mysql数据库之后,一定要记得对mysql进行一些设置,其中有两个设置能够避免存在大量sleep连接的问题。
这两个设置的命令如下:
mysql> set global interactive_timeout=100;
mysql> set global wait_timeout=100;
第一个是设置交互式连接保持的最大时间,单位是s(秒),超过该时间该连接就会被清除;
第二个是设置非交互式连接保持的最大时间;
这两个时间默认好像还挺大的,这里我们把它改掉,可以按实际需要改,不过别太大也别太小。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。