我有一个使用远程MySQL服务的应用程序,并在计划中设置了max_user_connections。就我的价格水平而言,它是30个连接。我的应用程序功能很好,所有操作都能工作。
但是,当MySQL工作台处于打开状态(用于手动db导入)时,如果我试图重新启动远程应用程序,则会得到一个错误:
[2022-02-04T22:24:05.313Z] error Error: ER_USER_LIMIT_REACHED: User '************' has exceeded the 'max_user_connections' resource (current value: 30)关闭后,我的远程应用程序可以重新启动。
我的应用程序的最大连接设置为30,但为了安全起见,我将其设置为29,试图为MWB预订1连接。
我还需要为MWB预订更多吗?它需要多少连接?我可以限制我的本地机器(Ubuntu)上的MWB,这样它使用的就少了(一台怎么样?)联系?
为了避免将来发生这种情况,最好的办法是什么?我想我的应用程序将在凌晨3点关闭维护,然后运行DB作业。
发布于 2022-02-05 23:37:38
max_connections限制同时连接的数量。
max_user_connections限制来自任何一个用户的同时连接的数量。
一个程序,包括一个工作台实例,应该(通常)只建立一个连接。
一些新手程序员在子程序中建立了连接,但未能与disconnect连接。他们应该做的是为程序中的所有数据库活动建立一个单一的连接。
“为MWB预留1”-让我先说一下,然后再谈这个问题。
“应用程序”和“用户”都应该有自己的登录。30名用户应该使用一个以上的登录。否则,追踪他们就没有希望了。
任何“用户”和“应用程序”都不应该以SUPER用户的身份连接(通常称为'root‘或' admin '),但在进行管理时除外。
您对Workbench的使用可能符合“管理内容”的条件,因此您可以使用“root”进行连接。
MySQL为“根”保留一个连接( max_connections)。实际上,如果max_connections是100,并且以根用户身份连接,那么在极端情况下可以看到101个连接。
只有1‘免费通行证’,所以不要加载MWB两次,如果所有的‘用户’是‘根’,也。
将Workbench配置为以用户的根登录;给其他每个人一个非超级登录。
https://dba.stackexchange.com/questions/307034
复制相似问题