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预留额外的连接,预防连接满了以后我们无法进入数据库进行相应的管理(具体略)

  • 相关阅读:
    【蛙蛙推荐】GridView和ObjectDataSource更新数据的一个Bug
    忙的顾不上写博客了
    重新启动开源的CRM项目,招募开源精英
    设计一个简单的缓存服务类
    hive的multidistinct可能带来性能恶化
    Linux tail 命令详解
    MapReduce:默认Counter的含义
    hive join
    Linux Top 命令解析 比较详细
    Hive优化总结(转)
  • 原文地址:https://www.cnblogs.com/olinux/p/5206367.html
Copyright © 2011-2022 走看看