【mysql】mysql5.7修改客户端最大连接数

1、设置最大连接数

​ 修改mysql客户端最大连接数可以通过两种方式,一种是使用命令设置,另一种是直接修改my.cnf文件,本文写作基于mysql5.7。

$ mysql -V
mysql  Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using  EditLine wrapper

(1)使用命令设置

​ 使用命令设置这种方式是临时修改,只能治标不能治本,在这个mysql服务不重启的条件下是可用的,若mysql重启会恢复到mysql默认的连接数(或者恢复到my.cnf文件中配置的最大连接数)。

# 若因达到最大连接数导致mysql服务不可用,则需重启mysql服务,如果起不来只能重启机器。反之,直接登录mysql即可。
service mysqld restart
# 重新登录mysql
mysql -uroot -p
# 查看当前mysql最大连接数限制(未改过默认151)
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)
mysql> exit

(2)修改my.cnf文件参数

​ mysql重启后会优先使用my.cnf配置文件中的配置,用第一种方法修改后,若重启mysql服务,则还是会回到my.cnf文件中配置的最大连接数(或者默认值)。

# 修改my.cnf文件,在文件中加入如下属性
$ vi /etc/my.cnf

max_connections=1000
# 重启mysql服务
$ service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
# 用户名密码登录
$ mysql -uroot -p

$ mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
1 row in set (0.00 sec)

2、max_connections参数说明

max_connections参数详情信息如下表

Property Value
Command-Line Format --max-connections=#
System Variable max_connections
Scope Global
Dynamic Yes
Type Integer
Default Value 151
Minimum Value 1
Maximum Value 100000(理论值)

max_connections参数官方说明

​ 官方文档中讲linux一般能支持500-1000个并发连接。要注意的是,mysql5.7支持可配置的最大连接数并不是一个确定值(比如官方给的),具体界定还需要参考以下几个因素:

1. 所用平台的线程库的质量
   
2. 内存的可用量
   
3. 每个连接所需要的内存量
   
4. 每个链接的工作负载。
   
5. 所需的响应时间
   
6. 可用的文件描述符(linux)的数量

你可能感兴趣的:(mysql学习与实践)