我遇到了一个问题,在我通过编辑my.cnf设置1000后,MySQL中max_connction的值是214,如下所示:
hadoop@node1:~$ mysql -V
mysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using EditLine wrapper
MySQL版本:5.7
操作系统版本:ubuntu 16.04LTS
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.00 sec)
我们可以看到,max_connections的变量值是151.然后,我编辑MySQL的配置文件 .
yang2@node1:~$ sudo vi /etc/mysql/my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=1000
保存混淆后重启MySQL服务 .
yang2@node1:~$ service mysql restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'mysql.service'.
Multiple identities can be used for authentication:
1. yangqiang,,, (yang2)
2. ,,, (hadoop)
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
yang2@node1:~$
现在,我们猜max_connection是1000,真的吗?
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
1 row in set (0.00 sec)
这是214.我真的不明白这个结果,谁可以帮助我?谢谢!
5 回答
关于max_connections设置的MySQL文档说:
这意味着您的MySQL服务器可能没有足够的资源来维护所需数量的描述符 .
How MySQL Opens and Closes Tables上的MySQL文档清楚地表明:
您可以手动设置值,例如
但是,重新启动MySQL后,该值将重置为214 .
解决方案取决于(版本)操作系统和MySQL版本 . 随着Ubuntu 16.04和MySQL> = 5.7.7以下工作:
systemctl编辑mysql
输入
保存,这将创建一个新文件
/etc/systemd/system/mysql.service.d/override.conf
并重新启动服务器:
对于其他环境:Can not increase max_open_files for Mysql max-connections in Ubuntu 15
在
/etc/pam.d/common-session
中添加session required pam_limits.so
(默认情况下通常不存在) .在
/etc/security/limits.conf
中你可以添加一些限制:还要检查
ulimit -a
打开文件限制 . 你可以用ulimit -n 4096
增加确保最后重启 .
请遵循以下步骤:
并将以下行更改或添加到文件 /etc/mysql/mysql.conf.d/mysqld.cnf :
只是这个! @Mahdi_Mohammadi
1.编辑mysql服务文件
2.edit /etc/mysql/mysql.conf.d/mysqld.cnf max_connections = 99999