1. 程式人生 > >MySQL無法同時多個客戶端進行連線解決方案

MySQL無法同時多個客戶端進行連線解決方案

問題: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 不在睡眠的執行緒數量。