新特性解读 | MySQL 8.0.28 用户连接内存限制

新特性解读 | MySQL 8.0.28 用户连接内存限制,第1张

以往 MySQL 想要限制单个连接的内存,只能小心翼翼的设置各种 SESSION 变量,防止执行某些 SQL 导致单个连接的内存溢出! 能不能直接在 MySQL 服务端包含这样一个功能,简化数据库的运维呢?

MySQL 最新版本 8.0.28 在前几天发布,其中有一项新功能就是在数据库侧来限制单个连接内存,着实有点小兴奋。

管理员端设置内存限制参数上限:为了尽快看到效果,设置为最小值。

创建一个新用户 tt1 ,并赋予基于库 ytt 的只读权限。

创建一张表,插入一行记录: 这里使用 longtext 数据类型能让查询结果更快内存溢出。

用户 tt1 登录验证:对字段 r1 进行简单 GROUP BY 检索 , 报连接内存超出设定限制错误,连接关闭。

不过这个新功能对管理员和内置用户不生效。 用 ROOT 用户重新登录 MySQL 执行刚才那条 SQL :

通常,mysql的最大连接数默认是100, 最大可以达到16384。

1、查看最大连接数:

show variables like '%max_connections%'

2、修改最大连接数

方法一:修改配置文件。推荐方法一

进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可.

方法二:命令行修改。不推荐方法二

命令行登录MySQL后。设置新的MySQL最大连接数为200:

MySQL>set global max_connections=200。

这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8511707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存