message from server: “Too many connections“


theme: nico

你们好,我是金金金。

image.png

场景

在这里插入图片描述

  • 启动服务时,报错如上:数据源拒绝建立连接,服务器发送消息:“连接过多”

排查

看报错信息提示的很明显了

  1. 查看MySQL 数据库中最大允许连接数的配置信息(我mysql是部署在docker容器的,所以如下命令需要进入mysql容器内并且登录mysql之后执行)
docker exec -it mysql bash   # 进入mysql容器
mysql -u root -p  # 登录mysql
SHOW variables LIKE "%max_connections%";    # 查看最大连接数信息

在这里插入图片描述

  • max_connections:MySQL数据库服务器的参数,指定了服务器可以同时接受的最大客户端连接数量。如果尝试建立的新连接超过这个限制,服务器将拒绝连接请求。这个参数的默认值通常是150
  • mysqlx_max_connections:这是MySQL数据库服务器的参数,用于控制通过MySQL X协议(用于MySQL的新的高级协议)连接到服务器的最大连接数。MySQL X协议提供了更现代和强大的功能,比如支持异步查询和事务。mysqlx_max_connections指定了服务器可以同时接受的最大MySQL X连接数。如果尝试建立的新连接超过这个限制,服务器将拒绝连接请求。这个参数的默认值通常是100
  1. 查询当前数据库服务器已连接的线程数量
SHOW STATUS LIKE 'Threads_connected';

在这里插入图片描述

  • 很明显,已经超过100了,所以数据源拒绝建立连接

造成error的原因

  • 数据库连接过多

解决

有多种解决方案。

  1. 重启mysql服务

    • 重启 MySQL 服务会导致所有现有的数据库连接被关闭。当 MySQL 服务器重启时,它会结束所有当前的进程,并清除 SHOW PROCESSLIST; 命令显示的所有线程信息。这意味着所有处于 “Sleep” 状态的线程、正在执行查询的线程,以及其他所有类型的数据库连接都会被终止
  2. 修改最大连接数(docker中修改mysql最大连接数及配置文件,因为我mysql是部署在docker容器的)

    2.1 临时修改:重启mysql后就不生效

    1. docker exec -it mysql /bin/bash
    2. mysql -u root -p root
    3. SET GLOBAL max_connections = 200;

    2.2 永久修改:重启mysql后也生效

    • 要永久修改 max_connections 的值,需要编辑MySQL的配置文件(通常是 my.cnfmy.ini,根据你的操作系统和MySQL安装方式而异)

    找到MySQL的配置文件。这个文件通常位于以下位置之一:

    • 在Unix/Linux系统上:/etc/my.cnf, /etc/mysql/my.cnf, 或 ~/.my.cnf
      • 我这里mysql是在docker容器下的,所以在容器目录内

在这里插入图片描述

-   在Windows系统上:通常是MySQL安装目录下的 `my.ini`
  • 我这里是liunx环境,mysql是部署在docker容器的
  • 打开配置文件 mysql容器下 /etc/mysql/my.cnf 文件, vi my.cnf文件编辑, 在 [mysqld] 部分下面添加或修改 max_connections 的值:
  • 容器内部默认是没有vim编辑器的,所以需要自己装一下
apt-get install vim
  • 修改内容如下
[mysqld] 
max_connections = 200

在这里插入图片描述

  • 保存配置文件并重启MySQL容器以使更改生效。
docker restart mysql

在这里插入图片描述

  • 然后我们进入mysql容器并且登录mysql 验证测试一下最大连接数是否变成了200,如下图,修改成功!

在这里插入图片描述

总结

连接过多,所以被拒绝连接了,我这边采用的方案是扩大最大连接数~

  • 编写有误还请大佬指正,万分感谢。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 03:05:44       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 03:05:44       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 03:05:44       58 阅读
  4. Python语言-面向对象

    2024-07-18 03:05:44       69 阅读

热门阅读

  1. VPN介绍

    2024-07-18 03:05:44       20 阅读
  2. Ubuntu下如何设置程序include搜索路径及链接路径

    2024-07-18 03:05:44       24 阅读
  3. 生成式 AI 的发展方向,是 Chat 还是 Agent?

    2024-07-18 03:05:44       25 阅读
  4. Chapter 2: An Introduction to ASP.NET Core in Layman‘s Terms

    2024-07-18 03:05:44       18 阅读
  5. function calling实现调用理杏仁api获取数据

    2024-07-18 03:05:44       23 阅读
  6. 算法热门工程师面试题(一)

    2024-07-18 03:05:44       25 阅读
  7. RocketMQ集群中的broker挂了会怎样?

    2024-07-18 03:05:44       17 阅读
  8. Web前端三剑客入门学习网站推荐与编译软件

    2024-07-18 03:05:44       23 阅读
  9. Eureka介绍与使用

    2024-07-18 03:05:44       23 阅读