我今天剛遇到 MySQL 達到其資料庫連線容量的問題。
我收到的錯誤是,Error establishing a database connection
.當我嘗試存取 時/phpma
,我收到此錯誤:phpMyAdmin - Error #1040 - Too many connections
。
我已經研究過如何進行更改my.cnf
以增加連接數量,但我想我已經這樣做了一段時間,並且從那時起沒有出現任何問題。因此,我有點擔心這些連線存在某種漏洞。
我運行的是 CentOS。有沒有簡單的方法來檢查這些連接?有什麼我該注意的嗎,或者可能只是一種剔除活動時間過長的連接的方法(MySQL 是否也這樣運作?)。
答案1
要從 Linux 中查看 mysql 中正在運行哪些線程:
root@myserver:~> mysqladmin processlist
與之等效的 mysql 查詢是:
root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G
另外,請查看檢查線程資訊查看輸出的含義。最為顯著地:
命令和狀態指示線程正在做什麼。
大多數狀態對應於非常快速的操作。如果線程保持給定狀態很多秒,則可能存在需要調查的問題。
重點是查看 mysql 進程列表,並根據您的環境性質(例如長時間運行的進程或大量進程)查看是否有任何可疑的內容。
答案2
使用此命令並列出正在運行的 mysql 應用程序,
ps -aux | grep 'mysql'
然後,在預設連接埠「3306」啟動所需的mysql