tüm sorguları öldür - MySQL


17

Bazen bir SNAFU sırasında kill query xxxxxxxyirmi ya da otuz kez koşmam gerekir . kill allEksik olduğum herhangi bir komut?

Yazmayı nasıl sevmediğim yüzünden.


sunucu yeniden başlatılsın mı?
Derek Downey

@DTest - bir sorgu ile yapılabilir mi? Doğrudan sunucu erişimim yok.
JIStone

Bu, diğer geliştiriciler ve DBA'lar (+1) için kullanışlı olabilecek bir sorudur !!!
RolandoMySQLDBA

Yanıtlar:


15

Linux komut satırından

for PROC_TO_KILL in `mysql -h... -u... -p... -A --skip-column-names -e"SHOW PROCESSLIST" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -A --skip-column-names -e"KILL QUERY ${PROC_TO_KILL}" ; done

Sorguda belirli bir kullanıcıyı veya belirli bir dizeyi bulmak için for döngüsünün başlığındaki grep seçeneğini değiştirebilirsiniz.

İşlem listesinin BİLGİ_SCHEMA'sında olduğu MySQL 5.1'iniz varsa, bunu Mysql istemcisinden toplu olarak KILL QUERY komutlarını oluşturmak için yapabilirsiniz:

SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') KillQuery
FROM information_schema.processlist WHERE user<>'system user'\G

Belirli bir sorguyu, uzun süren sorgulara karşı ZAMAN alanını veya belirli bir veritabanına karşı DB alanını aramak için BİLGİ alanına karşı WHERE yan tümceleri yapabilirsiniz.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.