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

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/olinux/p/5206367.html
Copyright © 2020-2023  润新知