我正在使用C#和MySql(存储过程)开发应用程序。运行应用程序一段时间后,它会显示连接数太多。然后我使用SHOW STATUS WHERE variable_name = 'Threads_connected';
和SHOW PROCESSLIST;
之类的命令来调试问题。似乎每次我在我的应用程序上运行任何操作时,mysql都会创建新线程并且该线程被标记为 Sleep 。而且线程没有按时关闭。我发现了一个解决方案,即设置如下的mysql环境变量。
interactive_timeout=180
wait_timeout=180
[注意:我的应用程序没有问题,因为我关闭了每个mysql连接]
提前致谢。
答案 0 :(得分:1)
我希望下面的artical能帮助你回答你的第二点
http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
如果应用程序没有正确关闭连接,wait_timeout是调整和丢弃未使用或空闲连接的一个重要参数,以最大限度地减少与MySQL服务器的活动连接数 - 这最终将有助于避免“太多”许多连接“错误。
Threads_running是一个很有价值的监控指标,因为它不计算休眠线程 - 它显示当前处理的活动和查询量,而threads_connected状态变量显示所有连接的线程值,包括空闲连接