问题记录_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项目中的数据库配置等等都可以从这方面进行入手查询资料
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端