zoukankan      html  css  js  c++  java
  • 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项目中的数据库配置等等都可以从这方面进行入手查询资料

  • 相关阅读:
    面向对象第三单元博客作业
    面向对象编程第2次总结(电梯作业)
    面向对象编程第1次总结
    OOP 第四章博客总结
    OO 第三章总结
    OOP 第二章作业总结
    Java 设计模式 -- 代理模式
    ASID 与 MIPS 中 TLB 相关
    Java 锁机制总结
    OOP 第一章作业总结
  • 原文地址:https://www.cnblogs.com/ChenQ2/p/15330475.html
Copyright © 2011-2022 走看看