• mysql调优最大连接数


    一、mysql调优

    1.1 报错:

    Mysql: error 1040: Too many connections

    1.2 原因:

    1、访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力。
    2、MySQL配置文件中max_connections值过小,默认151。

    1.3 最优计算方法:

    服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。

    Max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1%

    1.4 法一,临时生效方法

    #默认最大连接数
    mysql> show variables like '%max_connections%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | max_connections | 151 |
    +-----------------+-------+
    1 row in set (0.00 sec)
    
    #调整最大连接数
    mysql> set global max_connections = 1000;
    Query OK, 0 rows affected (0.00 sec)
    
    #查看最大连接数
    mysql> show variables like '%max_connections%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | max_connections | 1000 |
    +-----------------+-------+
    1 row in set (0.00 sec)
    
    #限制每个用户session连接数 mysql> show global status like 'Max_used_connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Max_used_connections | 152 | +----------------------+-------+ 1 row in set (0.00 sec) 备注: 1、max_connections :是对整个服务器的用户限制,整个服务器只能开这么多session,而不考虑用户。这个参数实际起作用的最大值(实际最大可连接数)为16384
    2、max_user_connections:限制每个用户的session连接个数,例如max_user_connections=1 ,那么用户u1只能连接的session数为1,如果还有用户u2,还是可以连接,但是连接数仍然为1。 

    1.5 法二:永久生效方法

    [root@a1 mysql]# egrep -v "#|^$" my.cnf 
    [mysqld_safe] 
    err-log=/var/log/mysqld.log 
    pid-file=/var/lib/mysql/mysqld.pid
    default-character-set = utf8
    [mysqld]
    port = 3306
    socket = /tmp/mysql.sock
    innodb_buffer_pool_size=2GB  #调优创建事务报错
    basedir = /roobo/server/mysql
    datadir = /roobo/mysqldata/database
    pid-file = /var/lib/mysql/mysql.pid
    character_set_server = utf8
    log-bin = /roobo/server/mysql/data/mysql-bin
    server_id = 1
    log-error=/var/log/mysqld.log
    max_connections=1000   #调优最大连接数报错
    

    #重启服务

    /etc/init.d/mysqld restart
  • 相关阅读:
    pdf文件预览实现
    RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054 问题解决
    Git、GitHub、GitLab三者之间的联系及区别(转)
    html中:befoer和:after用法(转)
    html中box-shadow用法(转)
    js/vue实现滑块验证(方法3)
    vue实现滑块验证(使用awsc实现)(方法1)
    js/vue实现滑块验证(组件形式,可重复调用)(方法2)
    js实现图片上传
    【英语】IT English (随时更新...)
  • 原文地址:https://www.cnblogs.com/nulige/p/10714881.html
Copyright © 2020-2023  润新知