我正在用MySQL建立一個網站。我用蟾蜍爲MySQL和突然,因爲我得到一個錯誤,我無法連接到數據庫:如何殺死MySQL連接
"Too many connections"
有沒有辦法在蟾蜍爲MySQL,查看現有的連接,能夠殺了他們或簡單關閉所有連接在一起?
我正在用MySQL建立一個網站。我用蟾蜍爲MySQL和突然,因爲我得到一個錯誤,我無法連接到數據庫:如何殺死MySQL連接
"Too many connections"
有沒有辦法在蟾蜍爲MySQL,查看現有的連接,能夠殺了他們或簡單關閉所有連接在一起?
沒有,是沒有內置的MySQL命令了點。有各種支持它的工具和腳本,您可以手動刪除一些連接或重新啓動服務器(但速度會更慢)。
使用SHOW PROCESSLIST
查看所有連接,並且KILL
您想要殺死的進程ID。
你可以通過修改超時設置有MySQL守護進程殺掉不活動的過程本身,或提高連接數。你甚至可以限制每個用戶名連接的數量,因此,如果過程保持行爲不端,唯一受影響的過程是過程本身並在數據庫中沒有其他客戶會被鎖定。
如果您不能再連接到服務器,您應該知道MySQL始終爲具有SUPER
特權的用戶保留一個額外的連接。除非你的問題的進程是對於用於產卵,許多連接某種原因,使用用戶名與特權......
然後之後就可以再次訪問你的數據庫,你應該修復過程(網站)。
請注意,限制每個用戶名在5.0.3上引入,所以如果你運行4.1或類似的東西,你運氣不好。 – jishi 2011-02-08 12:36:39
如上所述,沒有特殊的命令去做。但是,如果所有這些連接都處於非活動狀態,請使用「沖刷表」;能夠釋放所有不活動的連接。
mysql> SHOW PROCESSLIST;
+-----+------+-----------------+------+---------+------+-------+---------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------------+------+---------+------+-------+----------------+
| 143 | root | localhost:61179 | cds | Query | 0 | init | SHOW PROCESSLIST |
| 192 | root | localhost:53793 | cds | Sleep | 4 | | NULL |
+-----+------+-----------------+------+---------+------+-------+----------------+
2 rows in set (0.00 sec)
mysql> KILL 192;
Query OK, 0 rows affected (0.00 sec)
者192:
mysql> SELECT * FROM exept;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql> SELECT * FROM exept;
ERROR 2013 (HY000): Lost connection to MySQL server during query
我會建議您檢查連接到顯示最大螺紋連接
show variables like "max_connections";
樣品
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 13 |
+-----------------+-------+
1 row in set
然後通過示例增加它
set global max_connections = 500;
酷,非常感謝, – 2017-08-05 07:25:40
如果您的連接用完了,您可能在網站上做了錯誤的事情,比如沒有正確關閉連接。 – jishi 2011-02-08 12:37:30