DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) Server Shutdown

Info Catalog (mysql.info.gz) Configuring MySQL (mysql.info.gz) MySQL Database Administration (mysql.info.gz) Security
 
 5.3 The MySQL Server Shutdown Process
 =====================================
 
 The server shutdown process can be summarized like this:
 
   1. The shutdown process is initiated
 
   2. The server creates a shutdown thread if necessary
 
   3. The server stops accepting new connections
 
   4. The server terminates current activity
 
   5. Storage engines are shut down or closed
 
   6. The server exits
 
 A more detailed description of the process follows:
 
   1. The shutdown process is initiated.
 
      Server shutdown can be initiated several ways. For example, a user
      with the `SHUTDOWN' privilege can execute a `mysqladmin shutdown'
      command. `mysqladmin' can be used on any platform supported by
      MySQL. Other operating system-specific shutdown initiation methods
      are possible as well: The server shuts down on Unix when it
      receives a `SIGTERM' signal. A server running as a service on
      Windows shuts down when the services manager tells it to.
 
   2. The server creates a shutdown thread if necessary.
 
      Depending on how shutdown was initiated, the server might create a
      thread to handle the shutdown process.  If shutdown was requested
      by a client, a shutdown thread is created.  If shutdown is the
      result of receiving a `SIGTERM' signal, the signal thread might
      handle shutdown itself, or it might create a separate thread to do
      so.  If the server tries to create a shutdown thread and cannot
      (for example, if memory is exhausted), it issues a diagnostic
      message that will appear in the error log:
 
           Error: Can't create thread to kill server
 
   3. The server stops accepting new connections.
 
      To prevent new activity from being initiated during shutdown, the
      server stops accepting new client connections. It does this by
      closing the network connections to which it normally listens for
      connections: the TCP/IP port, the Unix socket file, the Windows
      named pipe, and shared memory on Windows.
 
   4. The server terminates current activity.
 
      For each thread that is associated with a client connection, the
      connection to the client is broken and the thread is marked as
      killed. Threads die when they notice that they are so marked.
      Threads for idle connections die quickly. Threads that currently
      are processing queries check their state periodically and take
      longer to die.  For additional information about thread
      termination, see  `KILL' KILL, in particular for the
      instructions about killed `REPAIR TABLE' or `OPTIMIZE TABLE'
      operations on `MyISAM' tables.
 
      For threads that have an open transaction, the transaction is
      rolled back.  Note that if a thread is updating a
      non-transactional table, an operation such as a multiple-row
      `UPDATE' or `INSERT' may leave the table partially updated,
      because the operation can terminate before completion.
 
      If the server is a master replication server, threads associated
      with currently connected slaves are treated like other client
      threads. That is, each one is marked as killed and exits when it
      next checks its state.
 
      If the server is a slave replication server, the I/O and SQL
      threads, if active, are stopped before client threads are marked
      as killed. The SQL thread is allowed to finish its current
      statement (to avoid causing replication problems) then stops. If
      the SQL thread was in the middle of a transaction at this point,
      the transaction is rolled back.
 
   5. Storage engines are shut down or closed.
 
      At this stage, the table cache is flushed and all open tables are
      closed.
 
      Each storage engine performs any actions necessary for tables that
      it manages.  For example, MyISAM flushes any pending index writes
      for a table.  InnoDB flushes its buffer pool to disk, writes the
      current LSN to the tablespace, and terminates its own internal
      threads.
 
   6. The server exits.
 
 
Info Catalog (mysql.info.gz) Configuring MySQL (mysql.info.gz) MySQL Database Administration (mysql.info.gz) Security
automatically generated byinfo2html