MySQL 9.1.0
Source Code Documentation
Details of existing event tracking services

Events related to user management

User management events are produced by server component as part of various user management DDL.

See also
s_mysql_event_tracking_authentication
  • EVENT_TRACKING_AUTHENTICATION_FLUSH: Emitted as a part of FLUSH PRIVILEGES
  • EVENT_TRACKING_AUTHENTICATION_AUTHID_CREATE: Emitted as a part of user creation through CREATE USER
  • EVENT_TRACKING_AUTHENTICATION_CREDENTIAL_CHANGE: Emitted as a part of credential change through ALTER USER or SET PASSWORD
  • EVENT_TRACKING_AUTHENTICATION_AUTHID_RENAME: Emitted as a part of RENAME USER
  • EVENT_TRACKING_AUTHENTICATION_AUTHID_DROP: Emitted as a part of DROP USER

Refer to mysql_event_tracking_authentication_data to know more about data passed to consumer.

In order to provide additional information for above events, server component implements event_tracking_authentication_information (s_mysql_event_tracking_authentication_information) service that a consumer component can use.

Events related to COM command execution

Commands events are executed whenever COM_* commands are executed.

See also
s_mysql_event_tracking_command
  • EVENT_TRACKING_COMMAND_START: Emitted whenever server component starts processing of COM_* command
  • EVENT_TRACKING_COMMAND_END: Emitted whenever server component is done processing a given COM_* command

Refer to mysql_event_tracking_command_data to know more about data passed to consumer.

Events related to a session connection

Connection events are generated at various stages of connection lifecycle.

See also
s_mysql_event_tracking_connection
  • EVENT_TRACKING_CONNECTION_PRE_AUTHENTICATE: Emitted whenever a new connection request from a client is received.
  • EVENT_TRACKING_CONNECTION_CONNECT: Emitted once authentication is completed for a new incoming connection
  • EVENT_TRACKING_CONNECTION_CHANGE_USER: Emitted when server receives CHANGE USER request on an existing connection
  • EVENT_TRACKING_CONNECTION_DISCONNECT: Emitted when an establish session is diconnecting.

Refer to mysql_event_tracking_connection_data to know more about data passed to consumer.

Events related to execution status

Execution status events occur at various stages of SQL execution.

See also
s_mysql_event_tracking_general
  • EVENT_TRACKING_GENERAL_LOG: Emitted whenever an SQL statement is logged into server's general log
  • EVENT_TRACKING_GENERAL_ERROR: Emitted whenever an error is raised
  • EVENT_TRACKING_GENERAL_RESULT: Emitted once result is transmitted to user
  • EVENT_TRACKING_GENERAL_STATUS: Emitted once query execution is complete

Refer to mysql_event_tracking_general_data to know more about data passed to consumer.

In order to provide additional information for above events, server component implements event_tracking_general_information (s_mysql_event_tracking_general_information) service that a consumer component can use.

Events related to global variable access

Global variable events occur whenever a global system variable is queried or is set.

See also
s_mysql_event_tracking_global_variable
  • EVENT_TRACKING_GLOBAL_VARIABLE_GET: Emitted whenever a global system variable value is queried.
  • EVENT_TRACKING_GLOBAL_VARIABLE_SET: Emitted whenever a global system variable value is set.

Refer to mysql_event_tracking_global_variable_data to know more about data passed to consumer.

Events related to program lifecycle

Lifecycle events occur at program start-up/shutdown.

See also
s_mysql_event_tracking_lifecycle
  • EVENT_TRACKING_STARTUP_STARTUP: Emitted after program startup
  • EVENT_TRACKING_SHUTDOWN_SHUTDOWN: Emitted before program shutdown

Refer to mysql_event_tracking_startup_data and mysql_event_tracking_shutdown_data to know more about data passed to cunsumer.

Events to emit special message to log

Message events are special events to inform a consumer about certain messages that producer want to deliver. A usecase of such a message is to add special markers in e.g. audit log files.

See also
s_mysql_event_tracking_message
  • EVENT_TRACKING_MESSAGE_INTERNAL: Denotes system generated messages
  • EVENT_TRACKING_MESSAGE_USER: Denotes user generated messages

Refer to mysql_event_tracking_message_data to know more about data passed to consumer.

Events to perform query rewrite or intercept queries

These events allow consumer to either abort an operation or rewrite a query to suite the need.

See also
s_mysql_event_tracking_parse
  • EVENT_TRACKING_PARSE_PREPARSE: Emitted right after query is received but before execution begins
  • EVENT_TRACKING_PARSE_POSTPARSE: Emitted after parsing phase of the query

Refer to mysql_event_tracking_message_data to know more about data passed to consumer.

Events to track query execution

These events occur at the beginning and end of query execution.

See also
s_mysql_event_tracking_query
  • EVENT_TRACKING_QUERY_START: Emitted at the start of top level query execution
  • EVENT_TRACKING_QUERY_STATUS_END: Emitted at the end of top level query execution
  • EVENT_TRACKING_QUERY_NESTED_START: Emitted at the start of subquery execution
  • EVENT_TRACKING_QUERY_NESTED_STATUS_END: Emitted at the end of subquery execution

Refer to mysql_event_tracking_query_data to know more about data passed to consumer.

Events to track stored program execution

These events occur whenever a stored program is executed.

See also
s_mysql_event_tracking_stored_program
  • EVENT_TRACKING_STORED_PROGRAM_EXECUTE: Emitted whenever a stored program is executed.

Refer to mysql_event_tracking_stored_program_data to know more about data passed to consumer.

Events to track table access

These events track different types of table access.

See also
s_mysql_event_tracking_table_access
  • EVENT_TRACKING_TABLE_ACCESS_READ: Emitted whenever a table is read
  • EVENT_TRACKING_TABLE_ACCESS_INSERT: Emitted whenever data is inserted in a table
  • EVENT_TRACKING_TABLE_ACCESS_UPDATE: Emitted whenever data is updated in a table
  • EVENT_TRACKING_TABLE_ACCESS_DELETE: Emitted whenever data is deleted from a table

Refer to mysql_event_tracking_table_access_data to know more about data passed to consumer.