django web开发中遇到这个错误:
大概的意思是mysql连接过多,
查看mysql中的进程(命令),确实有好多sleep的进程。
一、原因
1.没有及时关闭连接
使用资源一定要释放
2.一次太多连接,mysql本身没抗住
3.优化不够,查询时间太长
二、解决方法
解决一:
1.使用后及时关闭连接
2.使用短连接而不是长连接
使用完一次,就关闭一次
解决二:
1.设置mysql支持更多的连接
1.1查看当前连接数
show variables like 'max_connections';
1.2在配置文件增加:
max_connections = 1000
1.3重启
2.设置sleep的超时时间
查看当前设置的超时时间:
show variables like “%timeout%”;
|
interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
在配置文件中加入:
wait_timeout=120
interactive_timeout=120
然后重启
解决三:
优化SQL