DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) kill

Info Catalog (mysql.info) flush (mysql.info) other-administrative-sql (mysql.info) load-index
 
 13.5.5.3 `KILL' Syntax
 ......................
 
      KILL [CONNECTION | QUERY] THREAD_ID
 
 Each connection to `mysqld' runs in a separate thread. You can see
 which threads are running with the `SHOW PROCESSLIST' statement and
 kill a thread with the `KILL THREAD_ID' statement.
 
 In MySQL 5.0.0, `KILL' allows the optional `CONNECTION' or `QUERY'
 modifier:
 
    * `KILL CONNECTION' is the same as `KILL' with no modifier: It
      terminates the connection associated with the given THREAD_ID.
 
    * `KILL QUERY' terminates the statement that the connection is
      currently executing, but leaves the connection itself intact.
 
 If you have the `PROCESS' privilege, you can see all threads. If you
 have the `SUPER' privilege, you can kill all threads and statements.
 Otherwise, you can see and kill only your own threads and statements.
 
 You can also use the `mysqladmin processlist' and `mysqladmin kill'
 commands to examine and kill threads.
 
 * You cannot use `KILL' with the Embedded MySQL Server library,
 because the embedded server merely runs inside the threads of the host
 application. It does not create any connection threads of its own.
 
 When you use `KILL', a thread-specific kill flag is set for the thread.
 In most cases, it might take some time for the thread to die, because
 the kill flag is checked only at specific intervals:
 
    * In `SELECT', `ORDER BY' and `GROUP BY' loops, the flag is checked
      after reading a block of rows. If the kill flag is set, the
      statement is aborted.
 
    * During `ALTER TABLE', the kill flag is checked before each block
      of rows are read from the original table. If the kill flag was
      set, the statement is aborted and the temporary table is deleted.
 
    * During `UPDATE' or `DELETE' operations, the kill flag is checked
      after each block read and after each updated or deleted row. If
      the kill flag is set, the statement is aborted. Note that if you
      are not using transactions, the changes are not rolled back.
 
    * `GET_LOCK()' aborts and returns `NULL'.
 
    * An `INSERT DELAYED' thread quickly flushes (inserts) all rows it
      has in memory and then terminates.
 
    * If the thread is in the table lock handler (state: `Locked'), the
      table lock is quickly aborted.
 
    * If the thread is waiting for free disk space in a write call, the
      write is aborted with a `disk full' error message.
 
    * *Warning*: Killing a `REPAIR TABLE' or `OPTIMIZE TABLE' operation
      on a `MyISAM' table results in a table that is corrupted and
      unusable.  Any reads or writes to such a table fail until you
      optimize or repair it again (without interruption).
 
Info Catalog (mysql.info) flush (mysql.info) other-administrative-sql (mysql.info) load-index
automatically generated byinfo2html