MySQL最大连接数限制如何修改

编辑: admin 分类: 电脑知识 发布时间: 2023-06-09 来源:互联网

    一、前提条件

    修改数据库是一种风险较高的行为,在进行修改之前,建议使用开发测试数据库进行演示,并备份相关数据。以防数据库误操作,丢失数据等等 。

    修改MySQL的前提条件:

    1、有Linux用户的管理员权限账号,需要对MySQL安装的配置问卷进行修改;

    2、MySQL数据库的管理账号。

    3、如果有运维,与运维和开发负责人员商量修改,数据是大事,以防数据丢失,做好数据的备份。

    二、修改步骤

    1、使用root用户登录和连接数据库

    # mysql -uroot -p
    登录后复制

    输入命令后,提示输入root用户密码,输入密码后,成功登录数据库。

    MySQL最大连接数限制如何修改

    登录MySQL数据库

    2、查看当前数据库的最大连接数

    mysql> show variables like 'max_connections';
    登录后复制

    如下图,MySQL的最大连接数才151,稍微多开几个微服务,基本都会报数据库连接数过多的异常。

    MySQL最大连接数限制如何修改

    查看数据库的最大连接数

    3、修改MySQL配置文件

    找到MySQL的配置文件并且修改:/etc/mysql/mysql.conf.d/mysqld.cnf

    # view /etc/mysql/mysql.conf.d/mysqld.cnf
    登录后复制

    修改配置文件中的最大连接数,max_connections = 2000,修改完保存配置退出编辑状态。

    [mysql]
    max_connections = 2000
    登录后复制

    MySQL最大连接数限制如何修改

    修改配置文件中的最大连接数

    4、查看系统limit限制

    使用命令查询系统的文件限制

    # 查询文件限制
    $ ulimit -n
    1024
    登录后复制

    如果查看的系统文件限制是65535,说明系统已经修改过了,不需要再修改。

    5、修改系统文件限制

    5.1、在/etc/security/limits.conf最后增加如下两行记录,编辑完保存配置

    # 编辑系统文件配置文件
    $ view /etc/security/limits.conf
     
    # 在/etc/security/limits.conf最后增加如下两行记录
    * hard nofile 65535
    * soft nofile 65535
    登录后复制

    MySQL最大连接数限制如何修改

    最后增加如下两行记录

    5.2、编辑/etc/pam.d/common-session,加入一行 session required pam_limits.so

    # 编辑/etc/pam.d/common-session,
    # 加入一行 session required pam_limits.so
     
    $ view /etc/pam.d/common-session
    登录后复制

    MySQL最大连接数限制如何修改

    编辑配置文件

    5.3、编辑/etc/profile,加入ulimit -SHn 65535,保存后执行scource命令使配置生效,再次查看系统文件限制

    # 编辑/etc/profile,加入ulimit -SHn 65535
    # 编辑完保存
    $ view /etc/profile
     
    # 执行scource 命令使配置生效,确认修改是否成功
    $ source /etc/profile
     
    # 再次查看系统limit限制,看配置文件是否生效
    $ ulimit -n
    65535
    登录后复制

    MySQL最大连接数限制如何修改

    系统配置文件已修改成功

    6、修改mysql配置

    查找mysql.service 启动文件

    $ systemctl status mysql.service
    ● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2018-12-19 23:53:28 CST; 16min ago
     Process: 25857 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
    Process: 25843 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Main PID: 25856 (mysqld)
      Tasks: 28 (limit: 4915)
     Memory: 185.9M
        CPU: 1.577s
     CGroup: /system.slice/mysql.service
             └─25856 /usr/sbin/mysqld
    登录后复制

    进入目录 /etc/systemd/system/multi-user.target.wants,找到文件mysql.service

    sudo vim mysql.service,在 [Service] 最后加入:

    LimitNOFILE=65535
    LimitNPROC=65535
    登录后复制

    MySQL最大连接数限制如何修改

    修改mysql的启动配置文件

    7、执行下面命令使修改生效

    生效刚才修改的配置文件,重新启动MySQL服务。

    $ systemctl daemon-reload
    $ systemctl restart mysql.service
    登录后复制

    8、登录mysql,使用 show variables like "%max_connections%"; 查看最大连接数,这时发现已经改成2000。

    MySQL最大连接数限制如何修改

    【感谢龙石为本站提供数据中台建设http://www.longshidata.com/pages/government.html】