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