2 回答

TA贡献1860条经验 获得超8个赞
首先,您应该检查您的 MySQL 服务器允许使用SHOW VARIABLES LIKE 'max_connections'
. 默认值为 151,但如果它小于 100,那么您的程序显然会尝试打开太多连接。
但即使它超过 100,你仍然可以很容易地得到那个错误。MySQLmax_connections
是一个影响整个服务器的全局变量。如果您的程序在同一台服务器上使用其他数据库,它们也将计入您的max_connections
限制。或者类似地,如果您有其他程序使用您的数据库服务器,您也可能会用完连接。在这种情况下,您必须使用较小的值SetMaxOpenConns()
或增加max_connections
变量。
还可以考虑将db.SetMaxIdleConns()
To 设置为低于 的值db.SetMaxOpenConns()
。否则,您可能有 100 个(或您赋予的任何值SetMaxOpenConns
)到数据库服务器的空闲连接用尽了连接池。

TA贡献1900条经验 获得超5个赞
要更新打开连接限制并查看该限制,您只需登录 mysql 并执行以下命令。
mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 90 |
+-----------------+-------+
1 row in set (0.00 sec)
下面的命令将打开连接的限制设置为 1000,可以根据您的需要进行更改。
mysql> SET GLOBAL max_connections = 1000;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 90 |
+-----------------+-------+
1 row in set (0.00 sec)
作为参考,您可以从这里mysql 链接转到 mysql 官方链接
添加回答
举报