问题记录_MySQL8.0-Too many connections-1040

生成原因
  • 数据库提供的连接数已经被使用完,再连接没有被释放完前是不可能会有新的连接提供。
  • 数据库可以提供多少链接,可以在my.cnf(linux)或者my.ini(windows)下设定,默认是max_connections=100
  • 在使用数据库连接的时候,会配置数据库连接池的最小连接数,最大连接数。在初始化连接池的时,配置的最小连接数就会来占据数据库提供的链接。
解决方法
  • 找到my.cnf(linux)或者my.ini(windows),找到max_connections,修改默认值。
    • 假设你没有这个max_connections,有可能是你的配置文件不对,笔者接手一个陌生的项目,不知道Mysql是docker安装的,需要去docker内把Mysql配置文件拷贝出来修改后,再丢进去覆盖原本的配置文件。
预防问题产生
  • 修改MySQL的wait-timeout参数,默认是八小时。

    • 也就是说一旦一个连接被占用,不管这个连接有没有被使用(操作数据库数据),时间长度达到八小时才会被归还(就比如公共厕所,有的人一进去就是八小时)
  • 知道了问题出现的原因,那么有就很多方法来进行预防,例如连接池配置,Java项目中的数据库配置等等都可以从这方面进行入手查询资料

posted @   unknown-n2  阅读(102)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示

目录导航