MYSQL连接太多错误不会消失 我在Ubuntu Linux上运行的C++程序中得到了MySQL“太多的连接”错误。

MYSQL连接太多错误不会消失 我在Ubuntu Linux上运行的C++程序中得到了MySQL“太多的连接”错误。,c++,mysql,C++,Mysql,这是获取错误的代码(在返回mysql错误(如果有)的方法中): 此代码不断返回字符串“太多连接” 我想知道这是否是其他错误。在我出现这个错误之前,这个程序已经运行了几个月。当错误第一次出现时,是因为我运行程序时遇到了数千次更新/读取,所以是的,很可能是我用完了可用的连接。问题是,如果是这样的话,我找不到释放它们的方法 以下是我尝试过的: 刷新主机 冲洗桌子 重新启动MYSQL 完全重新启动机器 此错误首次出现已超过12个小时,因此如果是连接,则不会重置/释放任何内容。我原以为重新启动机器会释

这是获取错误的代码(在返回mysql错误(如果有)的方法中):

此代码不断返回字符串“太多连接”

我想知道这是否是其他错误。在我出现这个错误之前,这个程序已经运行了几个月。当错误第一次出现时,是因为我运行程序时遇到了数千次更新/读取,所以是的,很可能是我用完了可用的连接。问题是,如果是这样的话,我找不到释放它们的方法

以下是我尝试过的:

  • 刷新主机
  • 冲洗桌子
  • 重新启动MYSQL
  • 完全重新启动机器

此错误首次出现已超过12个小时,因此如果是连接,则不会重置/释放任何内容。我原以为重新启动机器会释放一些信息。

请确保在使用完它们后关闭连接

考虑重用连接或连接池。

请参阅

查看所有MySQL连接。

 netstat -apn | grep mysql | grep -i established
提示
  • 仅当连接指针为null或到DB的连接不可用时,才生成并返回连接对象
  • 在整个会话中使用一个连接池
  • 在每个会话结束时关闭连接,然后释放/清除连接指针
  • 在/etc/mysql/my.cnf中增加
    max#u connections=#
    ,或者使用
    --max#u connections=#

只是一个简短的评论。这个问题不是问如何编码C++。我当然会关闭连接并释放指针。我的问题是如何让MYSQL复位。此程序将不再运行,因为MYSQL中存在某种内部状态,即使在闲置超过12小时且机器重新启动后,仍然认为连接太多。请参阅我答案的编辑版本。谢谢,我将尝试增加最大连接设置。唯一的问题是,这并没有回答我脑海中关于如何重置连接的问题。当然,在MySQL中必须有某种方法来重置连接。它真的会永远保留所有连接吗,即使在重新启动之后?这难道不意味着我永远也摆脱不了我的关系吗?这一部分对meNo没有意义——它取决于客户端应用程序如何重新尝试连接。如果他们急切地重新尝试连接,那么这可能就是问题所在。您可以
sudopkillmysql
来终止和分离侦听和已建立的MySQL连接。您可以通过发出-
netstat-apn | grep mysql | grep-i-builded
来调试连接,以查看所有已建立的mysql连接,非常感谢。我会试试这些选择。我刚被拉到另一个任务上,稍后再检查!谢谢我使用了这个,并确定没有电流连接。在进一步挖掘之后,所发生的事情是有很多连接很快被打开。我原以为,因为调用是在循环中进行的,所以连接被及时释放。以前的程序运行从未遇到过这种“数据补丁”,所以这是第一次出现错误,但是。。。毕竟,这是程序的一个问题:(
 netstat -apn | grep mysql | grep -i established