發(fā)現(xiàn)問題
最近在項目中遇到一個問題,由于連接數(shù)過多,提示 “Too many connections” ,需要增加連接數(shù)。
我在 /etc/my.cnf中修改了:
但是, 實際連接數(shù)一直被限制在 214:
mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
1 row in set
思考
如果我設置連接小于214時,比如 200,那么實際連接數(shù)就是 200,也就是說,我的配置文件是沒有問題的。
查 MySQL 官方文檔,里面說了:
The maximum number of connections MySQL can support depends on the quality of the thread library on a given platform, the amount of RAM available, how much RAM is used for each connection, the workload from each connection, and the desired response time. Linux or Solaris should be able to support at 500 to 1000 simultaneous connections routinely and as many as 10,000 connections if you have many gigabytes of RAM available and the workload from each is low or the response time target undemanding. Windows is limited to (open tables × 2 + open connections) 2048 due to the Posix compatibility layer used on that platform.
Increasing open-files-limit may be necessary. Also see Section 2.5, “Installing MySQL on Linux”, for how to raise the operating system limit on how many handles can be used by MySQL.
大概意思是 MySQL 能夠支持的最大連接數(shù)量受限于操作系統(tǒng),必要時可以增大 open-files-limit。換言之,連接數(shù)與文件打開數(shù)有關。
解決方法
[root@sqzr ~]# ulimit -n
1024
可知,操作系統(tǒng)最大文件描述符限制為 1024。
更改 MySQL 在 Linux 的最大文件描述符限制,編輯 /usr/lib/systemd/system/mysqld.service
文件,在文件最后添加:
LimitNOFILE=65535
LimitNPROC=65535
保存后,執(zhí)行下面命令,使配置生效
$ systemctl daemon-reload
$ systemctl restart mysqld.service
實際連接數(shù)到 2000 了,解決
mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 2000 |
+-----------------+-------+
1 row in set
參考
https://dev.mysql.com/doc/refman/5.7/en/too-many-connections.html
https://www.oschina.net/question/853151_241231
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- python 連接數(shù)據(jù)庫mysql解壓版安裝配置及遇到問題
- 查看mysql當前連接數(shù)的方法詳解
- Mysql查看最大連接數(shù)和修改最大連接數(shù)的講解
- mysql最大連接數(shù)設置技巧總結
- mysql連接數(shù)設置操作方法(Too many connections)
- 完美解決MySQL通過localhost無法連接數(shù)據(jù)庫的問題
- JavaWeb連接數(shù)據(jù)庫MySQL的操作技巧
- Python 3.x 連接數(shù)據(jù)庫示例(pymysql 方式)
- php mysql操作mysql_connect連接數(shù)據(jù)庫實例詳解
- 總結MySQL修改最大連接數(shù)的兩個方式
- Mysql連接數(shù)設置和獲取的方法