我在 Ubuntu Linux 上运行的 C++ 程序中遇到 MySQL“太多连接”错误。
这是获取错误的代码(它在返回 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”。
我想知道这是否真的是其他错误。在我收到此错误之前,该程序已经运行了几个月。当错误第一次出现时,是因为我针对数千次更新/读取运行了程序,所以是的,很可能我用完了可用连接。问题是,如果确实如此,我找不到释放它们的方法。
这是我尝试过的:
- 刷新主机;
- 冲洗表格;
- 重启MYSQL
- 完全重启机器
自此错误首次出现以来已超过 12 小时,因此如果是连接问题,则不会重置/释放任何内容。我原以为重启机器会释放一些东西。
最佳答案
参见 C.5.2.7. Too many connections.
查看所有 MySQL 连接。
netstat -apn | grep mysql | grep -i established
提示
- 仅当连接指针为空或与数据库的连接不可用时才构建并返回连接对象。
- 在整个 session 中使用一个连接池。
- 在每个 session 结束时关闭连接并释放/清除连接指针。
- 增加/etc/mysql/my.cnf 中的
max_connections=#
或使用--max_connections=#
重启 MySQL>
关于c++ - MYSQL Too many connections 错误不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879410/