【发布时间】:2012-10-25 09:47:07
【问题描述】:
在我们使用 MySQL DB 部署新版本的 ASP.NET C# 应用程序后,我们遇到了连接问题。
昨天我收到“连接太多”错误,我正在查看打开的连接
SHOW FULL PROCESSLIST 并且它们在白天不断增加。
有什么好方法可以找出我们的错误可能在哪里吗?就像检查休眠连接发出的最后一个查询一样?
【问题讨论】:
标签: asp.net mysql mysql-connector
在我们使用 MySQL DB 部署新版本的 ASP.NET C# 应用程序后,我们遇到了连接问题。
昨天我收到“连接太多”错误,我正在查看打开的连接
SHOW FULL PROCESSLIST 并且它们在白天不断增加。
有什么好方法可以找出我们的错误可能在哪里吗?就像检查休眠连接发出的最后一个查询一样?
【问题讨论】:
标签: asp.net mysql mysql-connector
确保您的应用正在正确关闭与 db 的连接....如果您的应用没有关闭连接,那么您将收到上述错误
【讨论】:
Connection pooling 通常可以解决这个问题。在您的情况下,连接似乎保持打开的时间过长,这意味着在您的软件的某些分支中,没有确定的最终会在使用后关闭连接。在中心点诊断有问题的连接使用特别有用,因为它可以在任何给定时间关注打开的连接数量,并可能提醒某人进行转储以供以后分析。
您还可以增加 MySQL 实例允许的连接数。您的 my.cnf 中的设置是“max_connections”。
最后,如果您愿意,可以尝试减少实例的“wait_timeout”或“interactive_timeout”属性。这些设置控制在一定时间后自动关闭连接。
【讨论】: