KILL [CONNECTION | QUERY]
Sintassi
KILL [HARD | SOFT] [CONNECTION | QUERY] [id_thread | USER nome_utente]
Le opzioni HARD | SOFT
e USER nome_utente
sono state aggiunte in MariaDB 5.3.2
Spiegazione
Ogni connessione a mysqld è eseguita in un thread separato. E' possibile visualizzare i thread attivi con l'istruzione SHOW PROCESSLIST
e ucciderli con l'istruzione KILL id_thread
.
KILL
prevede l'uso dei modificatori opzionali CONNECTION
o QUERY
:
KILL CONNECTION
è comeKILL
senza modificatori: termina la connessione associata al thread specificato.KILL QUERY
termina l'istruzione eseguira dal thread specificato, ma non chiude la connessione stessa.
Se si possiede il permesso PROCESS
, è possibile visualizzare tutti i thread. Se si possiede il permesso SUPER
, è possibile terminare qualsiasi thread o istruzione. Diversamente, si può visualizzare e terminare solo i propri thread e le proprie istruzioni.
L'opzione (predefinita) HARD
termina un comando appena possibile. Se si utilizza SOFT
, le operazioni critiche che possono compromettere la coerenza dei dati non verranno interrotte. Tali istruzioni sono:
REPAIR
e creazione degli indici sulle tabelle MyISAM e Aria.
I timeout generati da MAX_QUERY_TIME utilizzano KILL SOFT QUERY
.
KILL ... USER nome_utente
termina le connessioni e le istruzioni associate all'utente specificato. L'utente può essere specificato in uno dei modi seguenti:
- nome_utente (termina senza controllare l'hostname)
- nome_utente@hostname
CURRENT_USER
oCURRENT_USER()
(utente corrente)
Nota: Non è possibile utilizzare KILL
nella libreria Embedded Server, perché questa viene eseguita all'interno di un thread dell'applicazione principale. Non crea alcun thread associato alle connessioni.
Nota: è anche possibile eseguire mysqladmin kill id_thread [, id_thread...]
per terminare le connessioni. Per ottenere una lista delle query in esecuzione, si può eseguire mysqladmin processlist
.