1.查看當前所有連接的詳細資料: mysqladmin -uroot -proot processlist 客戶端使用: show full processlist 2、只查看當前連接數(Threads就是連接數.): mysqladmin -uroot -proot status 客戶端使用: 3.查看最大連接數 show variables like "max_connections"; 4:查看當前連接數: show global status like 'Max_used_connections'; 如果進程過多打印下來: mysql -e 'show full processlist;' > 111 解決辦法: SHOW GLOBAL VARIABLES LIKE 'wait_timeout'; SHOW GLOBAL VARIABLES LIKE 'interactive_timeout'; set global wait_timeout=100; SET GLOBAL interactive_timeout=100; 修改連接的等待時間,超過時間釋放連接。 上面是實時修改重啟數據庫后失效 可在my.cnf中添加 wait_timeout=100 interactive_timeout=100 再次查看可能發現連接任然無法釋放。需要重啟數據庫。 可能Shutdown mysqld失敗。一直............................................................................................. 則重啟服務器吧。【攤手】 mysql數據庫無響應狀態了。只能強制重啟了 還可以修改最大連接數(不建議): MySQL服務器過去的最大連接數是245,沒有達到服務器連接數上限256,應該沒有出現1040錯誤,比較理想的設置是: Max_used_connections / max_connections * 100% ≈ 85% 臨時修改 set GLOBAL max_connections=1000; 永久修改: 配置/etc/my.cnf [mysqld]新添加一行如下參數: max_connections=1000 show variables like 'max_connections';
如果不是我們查看的最大1000; 這是由於mariadb有默認打開文件數限制。可以通過配置/usr/lib/systemd/system/mariadb.service來調大打開文件數目。 配置/usr/lib/systemd/system/mariadb.service [Service]新添加兩行如下參數: LimitNOFILE=10000 LimitNPROC=10000 重新加載系統服務,並重啟mariadb服務 systemctl --system daemon-reload systemctl restart mariadb.service