MySQL無法同時多個客戶端進行連線解決方案
阿新 • • 發佈:2019-02-05
問題:Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
原因:
1.首先定位了問題,是由於訪問量太大,導致資料庫連線數不夠,問題出現在資料庫上
2.查詢解決方案修改mysql的配置檔案my.cnf,調整最大連線數max_connections
解決方案:
一、方案一
修改mysql配置檔案my.cnf,在[mysqld]段中新增或修改max_connections值:
max_connections=2000
1.切換到my.cnf所在資料夾
cd /etc/mysql/
2.檢視該資料夾下的檔案
ls
3. 開啟my.cnf檔案
sudo vi my.cnf
4.在[mysqld]段中新增
max_connections=2000
5.重啟mysql服務
sudo service mysql restart
二、方案二(重啟mysql服務後失效)
進入MySQL控制檯,通過命令修改max_connections
1.進入MySQL控制檯
mysql -uroot -proot
2.檢視MySQL當前允許的最大連線數
show variables like '%max_connections%';
3.修改最大連線數
set GLOBAL max_connections=2000;
4.通過命令再次檢視當前的最大連線數,檢查是否生效
備註
一些常用的mysql狀態命令引數
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 58 |
| Threads_connected | 57 | ###這個數值指的是開啟的連線數
| Threads_created | 3676 |
| Threads_ running | 4 | ###這個數值指的是啟用的連線數,這個數值一般遠低於connected數值
+-------------------+-------+
mysql> show status like '%Max_used_connections%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 30 |
+----------------------+-------+
1 row in set (0.00 sec)
Max_used_connections 同時使用的連線的最大數目。
Threads_connected 當前開啟的連線的數量。
Threads_running 不在睡眠的執行緒數量。