MYSQL 8 Too many connections error 还在继续,这对DBA 是不公平的

news2024/12/23 1:43:35

928934e55660ed4263ed5a7947792fec.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共830人左右 1 + 2 + 3)。

提到MYSQL Too Many connections 这个错误在MYSQL 5.7 是一个DB人员忘不掉的错误。产生这个问题可能和数据库配置的不佳,或者应用程序组件中的缓冲池调整,增加更多的应用等等,或者因为突发的性能问题导致的这些种种,而不公平问题在于,这些情况的发生大多不是DB 可以控制的。

而在产生了 error 1040 (08004):too many connections 的错误后,如何解决才是一个难题。首先我们知道 max_connections 是一个可以动态调整的参数,但当你遇到这个问题的时候,你可能已经无法连接到数据,在进行问题的处理。

如果是使用 PERCONA MYSQL 的同学会非常轻松的解决这个问题,我们来回顾这个问题 

在Percona MySQL中,您可以通过保留一个管理员连接来确保即使在达到max_connections 限制时,仍然可以向服务器发出管理命令。以下是如何保留管理员连接的步骤:

打开 MySQL 配置文件(my.cnf),通常位于 /etc/my.cnf。

在 [mysqld] 部分添加以下配置:

extra_port = 3307

extra_max_connections = 1

extra_port 是您为管理员保留的特殊端口(这个例子中是3307),而 extra_max_connections 是允许在该端口上建立的最大连接数。

保存并关闭配置文件。

重启 Percona MySQL 以应用更改:

sudo service mysql restart

或者使用 systemd:

sudo systemctl restart mysql

现在,当普通用户连接超过 max_connections 限制时,您仍然可以在保留的管理员端口上与服务器建立连接。要使用管理员连接,请使用以下命令行:

mysql -u<username> -p<password> -P3307 -h127.0.0.1

请务必将 <username> 和 <password> 替换为具有管理员权限的用户凭据。

但是 ,但是 ,但是 ,重要的事情的说三遍,如果你使用的是官版的 MYSQL,则你是没有办法的,相信MYSQL的官方也意识到这个问题,所有在 8.014 这个版本后启动了管理员的接口,这需要对管理员的数据库账号赋予  service_connection_admin 的权限,这是

从MySQL 8.0.14开始,引入了一种新的“管理连接”或“管理网络接口”功能。此功能允许通过管理员端口连接到数据库,且对管理连接数没有限制。这个特性与前面示例中显示的单个连接的区别在于,它是一个不同的端口,并且如果需要的话,可以允许多个管理连接而不仅限于一个。当用户连接耗尽时,这应该允许我们访问数据库,并从那里开始增加连接或终止某些应用程序连接。

启用“管理连接”的最简单方法是定义“admin_address”变量,这是管理连接将监听的IP地址。例如,如果您只想允许本地连接,可以将此变量定义为“127.0.0.1”,或者如果您希望通过网络连接,可以将此变量定义为服务器的IP地址。这个变量不是动态的,这意味着它需要重新启动数据库。默认情况下,此变量为空,表示禁用了管理接口。另一个相关的变量是“admin_port”;此变量定义了MySQL将用于管理连接的端口,该变量的默认值是33062。一旦您定义了这两个变量并重新启动数据库,您将在错误日志中看到一条消息,指示管理接口已准备好建立连接。

16560f1b1e176b937e19aea325b5444e.png

那么为什么这个在MSYQL 8.014 的新功能比之前的PERCONA 或MARIADB 的功能要好,这里可以总结一下

1   参数简洁,方便理解和设置

2   在大多数的系统中,由于存在应用账号使用管理员的账号进行连接的情况(我很鄙视,但是很多公司都在这样搞,原因就不说了,懂得都懂),那么percona 的方式就直接作废了。

基于以上的原因,MYSQL8,014 提出的这个新的功能,直接弥补了这个问题,这个方案的最大的优点是访问的地址是不一样的,即使应用使用了管理的地址进行应用的访问,导致连接打满,但我们的管理员是通过给定的新的地址进行访问,这样从安全性和问题解决的部分都比之前的方案要更稳妥。

c53050aa97a819e94990e8cd981d2d93.png

我们做一个实验,当前最大的连接数是 300,我们同时通过管理员账号,发起300个并发连接,同时我们在通过管理员账号来连接数据库,在通过我们刚才设置的新的MYSQL TOO MANY CONNECTIONS 的8.014 的特性进行连接,下图很明显,我们连接成功,而普通的方式则不可以,已经 too many connections 了。

bb86144d335664ac41071377ec121e89.png

如果您正在使用MySQL 8.0.14或更高版本,那么应启用管理接口。正如我们所见,启用此功能非常简单,并通过允许在出现“ERROR 1040 (08004): Too many connections”的情况下访问数据库,为DBA提供了强大的功能。这个新功能不会影响正常的数据库性能并为DBA带来巨大的优势。请考虑仅将权限“SERVICE_CONNECTION_ADMIN”添加给管理用户而非应用程序用户,以免滥用此功能。如果您仍在使用较低版本的Percona Server for MySQL,请记住,在面临最大连接数问题时,可以通过配置变量“extra_port”和“extra_max_connections”来访问您的数据库。

eb7f72db1034afbe2b7b7490ce69f242.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++11 标准模板(STL)(std::bitset)(二)

定义于头文件 <bitset> template< std::size_t N > class bitset; 类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集&#xff0c;并将它与字符串和整数相互转换。 bitset 满足可复制构造 (CopyConstructible) 及可复制赋值 (CopyAssig…

qgis二次开发环境搭建(qgis-3.28.6+ubuntu22.04+qt5.15)

背景 一个Ros2项目中用到了qgis&#xff0c;特此整理一下用到的qgis二次开发代码。 linux搭建Debug环境(省事简单apt一把梭) 下载 ubuntu22.04qgis-3.28.6Qt version 5.15.3 编译 参考qgis编译文档 ubuntu22.04 使用上图jammy的安装命令上图中的apt-get安装命令安装的…

PyQt5桌面应用开发(19):事件过滤器

本文目录 PyQt5桌面应用系列再来点事件事件过滤器例子这是什么恶毒巫术?需求分析代码额外的细节知 总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2&#xff09;&#xff1a;事件循环 PyQt5桌面应用开…

从零到无搭建Vue项目及代码风格规范

注&#xff1a;已经有vue项目的可以跳过项目初始化 Vue项目搭建 环境搭建 安装nvm 方便后续切换不通的node版本 nvm官网 傻瓜安装就行 或者搜下自己&#xff08;非本文重点&#xff09;nvm 安装好后 安装一个Node版本 本文使用的 有了环境开始创建Vue项目 打开命令行 cmd n…

Redis底层学习(五)—存储类型-Set篇

文章目录 特点具体服务器操作命令底层结构应用场景 特点 适⽤场景&#xff1a;存储有去重需求的数据&#xff0c;⽐如&#xff1a;针对⼀篇⽂章⽤户进⾏点赞操作。 它的特点是内部元素⽆序且不重复。它的内部实现相当于⼀个特殊的字典&#xff0c;字典中所有的 value 的值都为…

这么好看的头像,岂不拿下!

❝ 如此好看的头像&#xff0c;怎么能不喜欢&#xff1f;&#xff1f;&#xff1f; ❞ 代码放在了最后 后续还会出一个工具&#xff0c;以便于随时打开下载。 看上述的头像是不是还是很不错的。看着网站还是✨✨每天都会有更新的✨✨。 所以&#xff0c;我动手了&#xff0c;下…

5.2 案例引入

博主简介&#xff1a;一个爱打游戏的计算机专业学生博主主页&#xff1a; 夏驰和徐策所属专栏&#xff1a;算法设计与分析 1.什么是大数据时代的到来&#xff1f; 大数据时代指的是在现代社会中&#xff0c;产生和积累的数据规模庞大、速度快、种类多样的时代。随着计算机技术…

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.4密码应用安全性评估测评过程指南

目录 概述 1.基本原则 2.风险测评控制 3.测评过程 密码应用评估方案 1.主要内容 1&#xff09;密码应用解决方案评估要点 2&#xff09;实施方案评估要点 3&#xff09;应急处置方案评估要点 2.主要任务 3.密码应用方案评估的输出文档 测评准备活动 1.测评准…

不愧是阿里,扣的真细。

铜三铁四已经过去了&#xff0c;今天的行情虽然没有以前好&#xff0c;但是相比去年来说也算是好了一些了。有一些人已经在这个招聘季拿到了不错的Offer了。 今天给大家分享一份面经&#xff0c;今天这位朋友的背景是Java五年本&#xff0c;2023年前被毕业后投入了面试大军怀抱…

Baseline Profile 安装时优化在西瓜视频的实践

‍ 动手点关注 干货不迷路 背景 在Android上&#xff0c;Java/Kotlin代码会编译为DEX字节码&#xff0c;在运行期由虚拟机解释执行。但是&#xff0c;字节码解释执行的速度比较慢。所以&#xff0c;通常虚拟机会在解释模式基础上做一些必要的优化。 在Android 5&#xff0c;Goo…

chatgpt赋能python:Python列表:完整介绍与使用指南

Python列表&#xff1a;完整介绍与使用指南 Python是一种非常受欢迎的编程语言&#xff0c;而Python列表是Python编程中最基本的数据结构之一。列表在Python中的使用频率极高&#xff0c;因为列表可以存储许多不同类型的数据&#xff0c;并且可以很方便地进行操作和修改。在本…

Unity Addressables学习笔记(2)---创建远程服务器对象

1.先创建对象 我的做法是&#xff1a; 先拖动一张图片到Resources/img下就是我选中的这张文件夹 2.把图片拖动到Hierarchy里变成一个对象&#xff0c;再把对象拖动到Resources/prefabs里&#xff0c;图片里的单词敲错了哈哈哈哈。 这样这个图片就变成了预制体&#xff0c;然…

AMD在数据中心领域举步维艰,竞争越来越难

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 数据中心业务举步维艰 2023年第一季度&#xff0c;AMD的数据中心业务收入为13亿美元&#xff0c;几乎没有同比增长&#xff0c;反而环比下降了22%。与此同时&#xff0c;它的主要竞争对手英伟达(NVDA)却获得了越来越多的订…

行为型设计模式04-状态模式

✨作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 状态模式 1、状态模式介绍 状态模式&#xff08;State&#xff09;是一种行为型设计模式&#xff0c;当一个对象的内在状态改变时…

python---条件语句(1)

顺序语句 按照写的顺序执行 条件语句 条件语句的一些注意事项: 1.情况1 2.情况2 bbb已经不属于条件语句中的内容了 3.情况3 通常使用4个空格或一个制表符tab来表示! if语句的嵌套 当有多级条件嵌套时,当前的语句属于哪个代码块,完全取决于缩进的级别.

SOFA Weekly|SOFAArk 社区会议预告、Layotto 社区会议回顾与预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展 欢迎留言互动&#xff5e; SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&am…

PostgreSql根据给的时间范围统计15分钟粒度、小时粒度、天粒度、周粒度、月粒度工单

PostgreSql根据给的时间范围统计15分钟粒度、小时粒度、天粒度、周粒度、月粒度工单 说明实现15分钟粒度工单统计小时粒度工单统计天粒度工单统计周粒度工单统计月粒度工单统计 说明 项目有个需求是统计故障工单每15分钟、每小时、每天、每周和每月共有多少工单。 这里先做个笔…

JavaEE进阶(统一功能处理)6/2

目录 1.使用拦截器实现用户登录的校验功能 2.统一数据格式的返回 3.统一异常的返回 1.使用拦截器实现用户登录的校验功能 Spring拦截器 关键步骤1.实现HandlerInterceptor接口 2.重写preHeadler方法&#xff0c;在方法中编写自己的业务代码 将拦截器添加到配置文件中&#xf…

【剑指offer】二维数组中的查找(详细解析)

文章目录 题目思路代码实现 题目 题目链接入口&#xff1a;牛客&#xff1a;JZ4 二维数组中的查找 思路 1.核心考点 &#xff08;1&#xff09; 数组相关&#xff1a;二维数组&#xff08;矩阵&#xff09;。 &#xff08;2&#xff09; 特性观察&#xff1a;在一个二维数组…

如何使用宝塔面板搭建网站(最后一步!上传文件至宝塔面板)

这里就是我们搭建宝塔面板的最后一步了&#xff0c;把我们的PHP文件上传到宝塔面板上&#xff0c;就可以通过因特尔网络访问我们的网址了。 第一步&#xff1a;基础安装 必须是Linux服务器 不支持window服务器 最低要求配置1核1G当然再低些也能运行但是不建议 要求服务器环…