点击上方蓝字”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF
最近一段时间比较忙,耽搁更新了,本周开始恢复。我们本地办公环境有个分析库是用来同步生产环境过来的数据。我建了一个只读的账号给运营那边查询,我们默认的连接是有限制的,他们需要更多连接数,我一个业余数据库用户,修改MySQL的用户连接数限制还是查了一会儿资料。
在MySQL中,我们是可以通过设置 max_user_connections 变量来限制单个用户可以同时建立的连接数。这个设置可以在全局级别、用户级别或者会话级别进行配置。
1.直接在创建用户的时候指定连接数限制
#SQLCREATE USER 'ops'@'192.168.%' IDENTIFIED BY 'password';GRANT USAGE ON *.* TO 'ops'@'192.168.%' WITH MAX_USER_CONNECTIONS 20;
MAX_USER_CONNECTIONS 20 表示ops这个用户最多只能有20个并发连接。
2.修改已经创建过的用户
# SQLALTER USER 'ops_old'@'192.168.%' WITH MAX_USER_CONNECTIONS 20;
对于已存在的用户'ops_old'@'192.168.%',我们可以通过 ALTER USER
语句加上 WITH MAX_USER_CONNECTIONS
选项来修改其最大连接数。
3.全局配置
直接在MySQL的配置文件添加:
[mysqld]max_user_connections = 20
不过全局配置的模式会影响到所有的用户,非针对某个具体用户。
4.配置完成之后,我们查看下用户的连接数限制
我们可以直接查询mysql.user
表来查看特定用户的max_user_connections
值。如下SQL:
# SQLSELECT User, Host, max_user_connectionsFROM mysql.userWHERE User = 'username' AND Host = 'host';
注意不要过度的满足用户的连接数限制,放开容易影响数据库服务的稳定性的。
每个连接都会占用一定的内存资源。如果连接数过多,可能会耗尽服务器的可用内存,导致系统变得非常缓慢甚至崩溃。
处理大量连接会增加 CPU 的负载,尤其是在执行复杂查询或事务时。

文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




