MySQL连接数超出最大值报错及修改

发布时间 2023-10-11 17:29:04作者: 不爱学习的摆烂王

报错:

create connection SQLException, url: jdbc:mysql://xx.xxx.x.xx:6306/hksk-cloud-mes?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, errorCode 1040, state 08004

原因:

该问题产生的原因是数据库本身的连接数都被占用,造成微服务无连接可用,但是为啥会出现这种情况呢?!(PS:第一次遇到这类问题)自己查一下数据库目前的运行状态,发现数据库有近152个连接正在被使用(最大限制是151),继续追查这些连接都是谁在用。最后,终于找到了源头,是由于同事在用这个数据库跑自己本地环境,最终造成数据连接都被占用,导致我启动不了。

提供一种解决方式:(我用的是MySQL命令,还有其他的修改方式,自行百度)

MySQL:

1.登录到 MySQL:首先,使用 MySQL 的客户端工具(如命令行或 MySQL Workbench)以管理员或具有足够权限的用户身份登录到 MySQL 服务器。
2.查看当前的最大连接数:你可以执行以下命令来查看当前的最大连接数限制:

SHOW VARIABLES LIKE 'max_connections';

这将显示当前的最大连接数设置。

3.修改最大连接数:要修改最大连接数,你可以执行以下 SQL 命令,将新的最大连接数设置为你所需的值(假设你想将最大连接数设置为300):

SET GLOBAL max_connections = 300;

请注意,上述命令会修改全局的最大连接数限制。如果你希望只修改当前会话的连接数限制,可以使用以下命令:
SET SESSION max_connections = 300;

这将只影响当前会话,不会全局更改最大连接数。

4.验证更改:为了确保更改已成功应用,你可以再次运行以下命令来检查新的最大连接数:

SHOW VARIABLES LIKE 'max_connections';

确保它显示你刚刚设置的新值。

5.重新启动 MySQL:有时,你可能需要重新启动 MySQL 服务器,以确保更改生效。这可以通过执行以下命令来完成:

FLUSH PRIVILEGES;

之后,你可以重新启动 MySQL 服务器,使更改生效。
请注意,修改最大连接数是一个敏感操作,应该慎重考虑,特别是在生产环境中。确保设置一个合适的连接数限制,以避免资源耗尽或性能问题。此外,确保你有足够的权限来执行这些更改。