<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="server-plugins">
      </a>
      7.6 MySQL Server Plugins
     </h2>
    </div>
   </div>
  </div>
  <div class="toc">
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="plugin-loading.html">
       7.6.1 Installing and Uninstalling Plugins
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="obtaining-plugin-information.html">
       7.6.2 Obtaining Server Plugin Information
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="thread-pool.html">
       7.6.3 MySQL Enterprise Thread Pool
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="rewriter-query-rewrite-plugin.html">
       7.6.4 The Rewriter Query Rewrite Plugin
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="ddl-rewriter.html">
       7.6.5 The ddl_rewriter Plugin
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="version-tokens.html">
       7.6.6 Version Tokens
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="clone-plugin.html">
       7.6.7 The Clone Plugin
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="daemon-keyring-proxy-plugin.html">
       7.6.8 The Keyring Proxy Bridge Plugin
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="plugin-services.html">
       7.6.9 MySQL Plugin Services
      </a>
     </span>
    </dt>
   </dl>
  </div>
  <a class="indexterm" name="idm46045257133472">
  </a>
  <a class="indexterm" name="idm46045257132400">
  </a>
  <a class="indexterm" name="idm46045257131328">
  </a>
  <p>
   MySQL supports an plugin API that enables creation of server
    plugins. Plugins can be loaded at server startup, or loaded and
    unloaded at runtime without restarting the server. The plugins
    supported by this interface include, but are not limited to, storage
    engines,
   <code class="literal">
    INFORMATION_SCHEMA
   </code>
   tables, full-text
    parser plugins, and server extensions.
  </p>
  <p>
   MySQL distributions include several plugins that implement server
    extensions:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Plugins for authenticating attempts by clients to connect to
        MySQL Server. Plugins are available for several authentication
        protocols. See
      <a class="xref" href="pluggable-authentication.html" title="8.2.17 Pluggable Authentication">
       Section 8.2.17, “Pluggable Authentication”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      A connection-control plugin that enables administrators to
        introduce an increasing delay after a certain number of
        consecutive failed client connection attempts. See
      <a class="xref" href="connection-control.html" title="8.4.2 The Connection-Control Plugins">
       Section 8.4.2, “The Connection-Control Plugins”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      A password-validation plugin implements password strength
        policies and assesses the strength of potential passwords. See
      <a class="xref" href="validate-password.html" title="8.4.3 The Password Validation Component">
       Section 8.4.3, “The Password Validation Component”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Semisynchronous replication plugins implement an interface to
        replication capabilities that permit the source to proceed as
        long as at least one replica has responded to each transaction.
        See
      <a class="xref" href="replication-semisync.html" title="19.4.10 Semisynchronous Replication">
       Section 19.4.10, “Semisynchronous Replication”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Group Replication enables you to create a highly available
        distributed MySQL service across a group of MySQL server
        instances, with data consistency, conflict detection and
        resolution, and group membership services all built-in. See
      <a class="xref" href="group-replication.html" title="Chapter 20 Group Replication">
       Chapter 20,
       <i>
        Group Replication
       </i>
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      MySQL Enterprise Edition includes a thread pool plugin that manages connection
        threads to increase server performance by efficiently managing
        statement execution threads for large numbers of client
        connections. See
      <a class="xref" href="thread-pool.html" title="7.6.3 MySQL Enterprise Thread Pool">
       Section 7.6.3, “MySQL Enterprise Thread Pool”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      MySQL Enterprise Edition includes an audit plugin for monitoring and logging of
        connection and query activity. See
      <a class="xref" href="audit-log.html" title="8.4.5 MySQL Enterprise Audit">
       Section 8.4.5, “MySQL Enterprise Audit”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      MySQL Enterprise Edition includes a firewall plugin that implements an
        application-level firewall to enable database administrators to
        permit or deny SQL statement execution based on matching against
        allowlists of accepted statement patterns. See
      <a class="xref" href="firewall.html" title="8.4.7 MySQL Enterprise Firewall">
       Section 8.4.7, “MySQL Enterprise Firewall”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Query rewrite plugins examine statements received by MySQL
        Server and possibly rewrite them before the server executes
        them. See
      <a class="xref" href="rewriter-query-rewrite-plugin.html" title="7.6.4 The Rewriter Query Rewrite Plugin">
       Section 7.6.4, “The Rewriter Query Rewrite Plugin”
      </a>
      , and
      <a class="xref" href="ddl-rewriter.html" title="7.6.5 The ddl_rewriter Plugin">
       Section 7.6.5, “The ddl_rewriter Plugin”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Version Tokens enables creation of and synchronization around
        server tokens that applications can use to prevent accessing
        incorrect or out-of-date data. Version Tokens is based on a
        plugin library that implements a
      <code class="literal">
       version_tokens
      </code>
      plugin and a set of loadable
        functions. See
      <a class="xref" href="version-tokens.html" title="7.6.6 Version Tokens">
       Section 7.6.6, “Version Tokens”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Keyring plugins provide secure storage for sensitive
        information. See
      <a class="xref" href="keyring.html" title="8.4.4 The MySQL Keyring">
       Section 8.4.4, “The MySQL Keyring”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      X Plugin extends MySQL Server to be able to function as a
        document store. Running X Plugin enables MySQL Server to
        communicate with clients using the X Protocol, which is
        designed to expose the ACID compliant storage abilities of MySQL
        as a document store. See
      <a class="xref" href="x-plugin.html" title="22.5 X Plugin">
       Section 22.5, “X Plugin”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Clone permits cloning
      <code class="literal">
       InnoDB
      </code>
      data from a
        local or remote MySQL server instance. See
      <a class="xref" href="clone-plugin.html" title="7.6.7 The Clone Plugin">
       Section 7.6.7, “The Clone Plugin”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Test framework plugins test server services. For information
        about these plugins, see the Plugins for Testing Plugin Services
        section of the MySQL Server Doxygen documentation, available at
      <a class="ulink" href="/doc/index-other.html" target="_top">
       https://dev.mysql.com/doc/index-other.html
      </a>
      .
     </p>
    </li>
   </ul>
  </div>
  <p>
   The following sections describe how to install and uninstall
    plugins, and how to determine at runtime which plugins are installed
    and obtain information about them. For information about writing
    plugins, see
   <a class="ulink" href="/doc/extending-mysql/8.4/en/plugin-api.html" target="_top">
    The MySQL Plugin API
   </a>
   .
  </p>
 </div>
 <br/>
</div>
