2009-07-27 47 views

回答

2

MySQL 5.0.x僅支持「SHOW FULL PROCESSLIST」命令。沒有能力查詢和過濾進程列表,因爲它認爲它是一個SQL表,例如SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST。此功能已添加到MySQL 5.1+

MySQL具有殺死查詢或整個連接的KILL命令。不過,您需要一個運行「SHOW FULL PROCESSLIST」的Ruby或Perl腳本,標識哪些查詢正在運行「太長」,然後發出相應的KILL命令。

您也可以從命令行執行此操作,例如,

mysqladmin processlist 
mysqladmin kill 
2

可以執行更新的問題...

SHOW FULL PROCESSLIST; 

...向你展示當前執行的查詢。

但是,您不應該殺死連接,因爲這可能會導致數據完整性問題。相反,您應該使用流程表輸出作爲突出潛在問題可能存在的方法,然後才能從源頭糾正問題。 (從這個意義上說,這是一種(非常)窮人的MySQL Enterprise Monitor。)

0

命令「mysqladmin processlist」將顯示當前連接以及指示自上次活動以來的時間的時間列。 您可以使用SQL命令「SHOW FULL PROCESSLIST;」執行相同的操作

3

安裝RubyGem mysql_managersudo gem install mysql_manager),然後運行這樣的命令:

mysql-manager --kill --kill:user api --kill:max-query-time 30 --log:level DEBUG 

如需更多選項,運行mysql-manager --help

您可能需要指定替代方案--db:dsn,--db:username--db:password

閱讀更多關於它的地方:https://github.com/osterman/mysql_manager