uccidi tutte le query - MySQL


17

A volte durante una SNAFU devo correre kill query xxxxxxxventi o trenta volte. Qualche tipo di kill allcomando che mi manca?

A causa di come non mi piace digitare.


riavviare il server?
Derek Downey,

@DTest - può essere fatto con una query? Non ho accesso diretto al server.
JIStone,

Questa è una domanda che può tornare utile per altri sviluppatori e DBA (+1) !!!
RolandoMySQLDBA,

Risposte:


15

Dalla riga di comando di Linux

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

È possibile modificare l'opzione grep nell'intestazione del ciclo for per individuare un utente specifico o una stringa specifica nella query.

Se hai MySQL 5.1 in cui la processlist si trova in INFORMATION_SCHEMA, puoi farlo per generare i comandi KILL QUERY in blocco dall'interno del client mysql:

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

È possibile eseguire clausole WHERE sul campo INFO per cercare una query specifica, il campo TIME su query a esecuzione prolungata o il campo DB su un database specifico.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.