MYSQL太多连接错误不会消失

时间:2014-02-19 11:41:02

标签: c++ mysql

我在Ubuntu Linux上运行的C ++程序中遇到MySQL“Too many connections”错误。

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

MYSQL connect;
mysql_init(&connect);
if (!mysql_real_connect(&connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0))
{
    return mysql_error(&connect);
}

此代码不断返回字符串“Too many connections。”

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

以下是我的尝试:

  • FLUSH HOSTS;
  • FLUSH TABLES;
  • 重启MYSQL
  • 完全重启机器

此错误首次出现已超过12小时,因此如果是连接,则不会重置/释放任何内容。我本以为重启机器会发布一些东西。

2 个答案:

答案 0 :(得分:3)

请参阅C.5.2.7. Too many connections.

查看所有MySQL连接。

 netstat -apn | grep mysql | grep -i established

提示

  • 仅当连接指针为空或与DB的连接不可用时才构建并返回连接对象。
  • 在整个会话中使用一个连接池。
  • 在每个会话结束时关闭连接并释放/清除连接指针。
  • 在/etc/mysql/my.cnf中增加max_connections=#或使用--max_connections=#重启MySQL

答案 1 :(得分:0)

确保在完成连接后关闭连接。

考虑重用连接或连接池。