Plugins and Components

Certain MySQL Server plugins and components are loaded in the DB system automatically. You do not need to install any of these plugins.

  • MySQL Enterprise Thread Pool: The thread pool plugin provides an alternative thread-handling model designed to reduce overhead and improve performance. See MySQL Enterprise Thread Pool.
    HeatWave DB system logs the number of connections managed by the thread pool plugin. A message is written to the error log every two-minute interval. The interval is reduced to 12 seconds in the first three minutes after the DB system started successfully. The connections are grouped into non-admin users (users without the TP_CONNECTION_ADMIN privilege) and admin users (users with the TP_CONNECTION_ADMIN privilege). For each group, the following information is provided:
    • Managed: Sessions that are currently opened at the end of the logging interval and handled by the thread groups.
    • Delta: Change in number of managed sessions during the last logging interval.
    • Active: Sessions that have been active (executing a query) some time during the last interval.
    • Opened: Sessions that have been opened during the last interval.
    • Closed: Sessions that have been closed during the last interval.
    • Added: Sessions that have been opened during the last interval, and which are not closed yet.
    • Dropped: Sessions that have been opened in a previous interval and closed during the last interval.
    As of MySQL 9.1.0, it also shows the statistics for connections that are being established. The following information is provided:
    • In: Number of incoming connection requests in the last interval.
    • Queue: Number of requests currently in the queues between the server and the thread pool.
    • Auth: Number of requests currently being authenticated.
    • Err: Number of requests aborted in the last interval before being handed over to the thread pool.
    • Ok: Number of requests successfully handled and handed over to the thread pool as new managed sessions in the last interval.
    You can view these messages with this SQL query:
    SELECT * FROM performance_schema.error_log WHERE DATA LIKE 'TP conn%'\G
    This is a sample row of the output in MySQL 9.1.0:
        LOGGED: 2024-10-28 05:41:33.402235
     THREAD_ID: 0
          PRIO: Note
    ERROR_CODE: MY-015507
     SUBSYSTEM: Server
          DATA: TP conn (init: in, queue, auth, err, ok. 
                         port: managed(delta), active, opened, closed, added, dropped.):
                         Init: 23, 2, 5, 2, 18. 
                         Usr: 6(+1), 6, 17, 15, 2, 1. Adm: 2(+1), 2, 1, 0, 1, 0.
    
    In the sample output, 23 connection requests were received during the last interval. There are still 2 requests in the queue and five requests are being authenticated. It has handled 20 connection requests where 18 have been handed over to he thread pool groups and 2 have failed. The usr group shows that there is 1 user session more than the previous interval giving a total of 6 user sessions at the end of this interval. All of the 6 sessions have executed one or more queries in the interval. There are 17 new sessions being opened and 15 sessions being closed during this interval. At the end of the interval, 2 of the newly opened sessions have not been closed while 1 sessions from the previous interval have been closed.
    For a thread pool with thread_pool_size=N, there will be N thread groups over which the non-admin users' sessions will be assigned in a round robin fashion, while there is a single thread group to which the admin user's sessions will be assigned. The thread pool will in fact has N+1 thread groups.
    Note

    It is recommended to create a separate user account granted only with the required privileges for your application instead of using the administrator account for all purposes. See CREATE USER Statement and GRANT Statement.
  • MySQL Enterprise Audit plugin: The audit plugin enables MySQL Server to produce a log file containing an audit record of server activity. The log contents include when clients connect and disconnect, and what actions they perform while connected, such as which databases and tables they access. You can add statistics for the time and size of each query to detect outliers. You cannot change the default values of the plugin.
    • audit_log_buffer_size: 10485760
    • audit_log_compression: GZIP
    • audit_log_database: mysql_audit
    • audit_log_file: /db/audit/audit.log
    • audit_log_flush_interval_seconds: 60
    • audit_log_format: JSON
    • audit_log_format_unix_timestamp: ON
    • audit_log_max_size: 5368709120
    • audit_log_prune_seconds: 604800
    • audit_log_rotate_on_size: 52428800
    By default, audit plugin logs are disabled, and you have to define filters to enable logging all auditable events for all users. See Defining Audit Plugin Filters. By default, there are few global privileges granted and few privileges revoked from the mysql_audit schema. See Default MySQL Privileges, and MySQL Enterprise Audit Plugin.
  • The connection_control plugin: MySQL Server includes a plugin library that enables administrators to introduce an increasing delay in server response to connection attempts after a configurable number of consecutive failed attempts. The default value of the variables of the connection-control plugin are as follows, and you cannot change the default values:
    • connection_control_failed_connections_threshold : 3
    • connection_control_max_connection_delay: 10000
    • connection_control_min_connection_delay:1000
    See Connection-Control Plugins.
  • The validate_password component: The component serves to improve security by requiring account passwords and enabling strength testing of potential passwords. The default value of the variables of the validate_password component are as follows, and you cannot change the default values:
    • validate_password.check_user_name: ON
    • validate_password.length: 8
    • validate_password.mixed_case_count:1
    • validate_password.number_count:1
    • validate_password.policy: MEDIUM
    • validate_password.special_char_count :1
    See Password Validation Component.
  • Data masking: The general-purpose masking functions mask arbitrary strings, special-purpose masking functions mask specific types of values, and generate functions generate random values. See Data Masking.