定时关闭mysql中sleep的进程

2016年06月06日 13:01 by:唠吧小站

mysql中睡眠连接会对mysql服务器造成影响

严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

造成睡眠连接过多的原因?

1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)

2. 程序中,没有及时关闭mysql连接

3. 数据库查询不够优化,过度耗时。

那么,如果要从根本上解决sleep连接过多,就得从以上三点反复检查,但是见效并不快。

在mysql的配置文件中设置自动关闭链接时间过长的进程:

修改mysql的配置文件my.cnf , window系统中是my.ini

  1. [mysqld]
  2. ......
  3. wait_timeout=100
  4. interactive_timeout=100

wait_timeout=100 #即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止。

设置好后重启mysql

  1. service mysqldrestart

修改mysql占用内存的参数如下:

table_open_cache=2000 改为

  1. table_open_cache=256

table_definition_cache=1400 改为

  1. table_definition_cache=400

标签:mysql