2

最近我一直在工作的 ac# 网站抛出了一个 -

mysql 已超过 'max_user_connections

错误。我检查了我的代码,并相信我应该关闭所有打开的连接。运行SHOW PROCESSLIST命令后,它列出了许多状态为“睡眠”且“信息”为空的进程,类似于这个 Stack Overflow 问题 -

Mysql show processlist 列出许多进程sleep and info = null?

我可以在数据库设置或连接字符串中做些什么来防止 MySql 挂在进程上吗?我的连接字符串目前看起来像这样 -

server=server;User Id=user;password=****;Persist Security Info=True;database=mysql5_867860_footytriv;Pooling=true;Min Pool Size=10;Max Pool Size=15

该网站托管在 discountasp.net 上

4

1 回答 1

0

这需要大量调查。通常如您所知,MYSQL 从连接池中管理连接实例。有时,所有连接都在使用中。

这导致我们遇到 2 个问题:
1. 有一些查询需要很长时间才能执行,因此它没有释放连接(一些冗余查询、长时间运行的查询等)
2. 服务器上的负载太高并且硬件配置不足以处理这么多用户。

在得出结论之前,您必须衡量所有这些。您可以调整配置文件以增加内存、无连接等,但我认为这对您没有帮助!

于 2012-05-09T07:02:46.813 回答