zoukankan      html  css  js  c++  java
  • MySQL中too many connections超出最大连接数的处理方法

    MySQL最大连接数的问题

    在MySQL的源码中,默认最大的连接数是16384

    {"max_connections", OPT_MAX_CONNECTIONS, 

        "The number of simultaneous clients allowed.", (gptr*) &max_connections, 

        (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 

        0},

    出现too many connections 的问题,此时已经没办法连接到MySQL上去动态修改max_connections,出现这种问题的可能性有

    1 前端应用的问题

    可能是由于前端的长连接数过多或者业务量的速增导致连接数比占满的情况

    2 自身连接数设置的问题

    解决的方法

    1 设置MySQL的max_connections, interactive_timeout的值,让MySQL来回收这部分连接

    2 避免长连接,使用短连接

    无法登录的处理方法

    [root@MASTER_03 ~]# !mysql

    mysql -uroot -p

    Enter password:

    ERROR 1040 (HY000): Too many connections

    临时的处理方法

    [root@MASTER_03 ~]# yum install gdb -y
    
    [root@MASTER_03 ~]# gdb -p $(cat /data/3306/tmp/mysql.pid) -ex "set max_connections=1100" --batch

    再登录即可

    mysql> show global variables like 'max_conn%';

    +--------------------+-------+

    | Variable_name      | Value |

    +--------------------+-------+

    | max_connect_errors | 10000 |

    | max_connections    | 1100  |

    +--------------------+-------+

    2 rows in set (0.00 sec)

    要保持一个原则 max_user_connections  < max_connections  

    当然,如果是percona这种版本中,有自带的方法,在Percona5.5的thread_pool里面提供了2个参数extra_port和extra_max_connections预留额外的连接,预防连接满了以后我们无法进入数据库进行相应的管理(具体略)

  • 相关阅读:
    JSON 串 自定义解析字段
    JspWriter与PrintWriter的关系
    Map 根据value 排序
    Log4j NDC MDC
    stray '/241' in program 错误
    【Qt开发】修改源码文件的编码格式的小技巧 .
    Tomcat 虚拟目录映射
    《疯狂Java讲义精粹》读书笔记4 基本包装类
    《疯狂Java讲义精粹》读书笔记8 不可变类
    《疯狂Java讲义精粹》读书笔记9 接口
  • 原文地址:https://www.cnblogs.com/olinux/p/5206367.html
Copyright © 2011-2022 走看看