MySQL 9.0.0
Source Code Documentation
mysqld.cc File Reference

MySQL server daemon. More...

#include "sql/mysqld.h"
#include "my_config.h"
#include "errmsg.h"
#include "ft_global.h"
#include "keycache.h"
#include "m_string.h"
#include "migrate_keyring.h"
#include "my_alloc.h"
#include "my_base.h"
#include "my_bitmap.h"
#include "my_command.h"
#include "my_compiler.h"
#include "my_dbug.h"
#include "my_default.h"
#include "my_dir.h"
#include "my_getpwnam.h"
#include "my_macros.h"
#include "my_rnd.h"
#include "my_shm_defaults.h"
#include "my_stacktrace.h"
#include "my_thread_local.h"
#include "my_time.h"
#include "my_timer.h"
#include "myisam.h"
#include "mysql/binlog/event/binlog_event.h"
#include "mysql/binlog/event/control_events.h"
#include "mysql/components/services/bits/psi_bits.h"
#include "mysql/components/services/log_builtins.h"
#include "mysql/components/services/log_shared.h"
#include "mysql/components/services/mysql_runtime_error_service.h"
#include "mysql/components/util/weak_service_reference.h"
#include "mysql/components/services/mysql_option_tracker.h"
#include "mysql/my_loglevel.h"
#include "mysql/plugin.h"
#include "mysql/plugin_audit.h"
#include "mysql/psi/mysql_cond.h"
#include "mysql/psi/mysql_file.h"
#include "mysql/psi/mysql_memory.h"
#include "mysql/psi/mysql_metric.h"
#include "mysql/psi/mysql_mutex.h"
#include "mysql/psi/mysql_rwlock.h"
#include "mysql/psi/mysql_socket.h"
#include "mysql/psi/mysql_stage.h"
#include "mysql/psi/mysql_statement.h"
#include "mysql/psi/mysql_thread.h"
#include "mysql/psi/psi_cond.h"
#include "mysql/psi/psi_data_lock.h"
#include "mysql/psi/psi_error.h"
#include "mysql/psi/psi_file.h"
#include "mysql/psi/psi_idle.h"
#include "mysql/psi/psi_mdl.h"
#include "mysql/psi/psi_memory.h"
#include "mysql/psi/psi_mutex.h"
#include "mysql/psi/psi_rwlock.h"
#include "mysql/psi/psi_socket.h"
#include "mysql/psi/psi_stage.h"
#include "mysql/psi/psi_statement.h"
#include "mysql/psi/psi_system.h"
#include "mysql/psi/psi_table.h"
#include "mysql/psi/psi_thread.h"
#include "mysql/psi/psi_tls_channel.h"
#include "mysql/psi/psi_transaction.h"
#include "mysql/service_mysql_alloc.h"
#include "mysql/strings/int2str.h"
#include "mysql/strings/m_ctype.h"
#include "mysql/thread_type.h"
#include "mysql_time.h"
#include "mysql_version.h"
#include "mysqld_error.h"
#include "mysys/build_id.h"
#include "mysys_err.h"
#include "nulls.h"
#include "pfs_thread_provider.h"
#include "print_version.h"
#include "scope_guard.h"
#include "server_component/log_sink_buffer.h"
#include "server_component/log_sink_perfschema.h"
#include "server_component/log_sink_trad.h"
#include "server_component/log_source_backtrace.h"
#include "server_component/mysql_server_event_tracking_bridge_imp.h"
#include "sql/mysqld_cs.h"
#include "sql-common/my_decimal.h"
#include "sql/auth/auth_common.h"
#include "sql/auth/authentication_policy.h"
#include "sql/auth/sql_authentication.h"
#include "sql/auth/sql_security_ctx.h"
#include "sql/auto_thd.h"
#include "sql/binlog.h"
#include "sql/bootstrap.h"
#include "sql/check_stack.h"
#include "sql/conn_handler/connection_acceptor.h"
#include "sql/conn_handler/connection_handler_impl.h"
#include "sql/conn_handler/connection_handler_manager.h"
#include "sql/conn_handler/socket_connection.h"
#include "sql/current_thd.h"
#include "sql/dd/cache/dictionary_client.h"
#include "sql/debug_sync.h"
#include "sql/derror.h"
#include "sql/event_data_objects.h"
#include "sql/events.h"
#include "sql/handler.h"
#include "sql/hostname_cache.h"
#include "sql/init.h"
#include "sql/item.h"
#include "sql/item_cmpfunc.h"
#include "sql/item_create.h"
#include "sql/item_func.h"
#include "sql/item_strfunc.h"
#include "sql/keycaches.h"
#include "sql/log.h"
#include "sql/log_event.h"
#include "sql/log_resource.h"
#include "sql/mdl.h"
#include "sql/mdl_context_backup.h"
#include "sql/mysqld_daemon.h"
#include "sql/mysqld_thd_manager.h"
#include "sql/opt_costconstantcache.h"
#include "sql/options_mysqld.h"
#include "sql/partitioning/partition_handler.h"
#include "sql/persisted_variable.h"
#include "sql/plugin_table.h"
#include "sql/protocol.h"
#include "sql/psi_memory_key.h"
#include "sql/query_options.h"
#include "sql/range_optimizer/range_optimizer.h"
#include "sql/reference_caching_setup.h"
#include "sql/regexp/regexp_facade.h"
#include "sql/replication.h"
#include "sql/resourcegroups/resource_group_mgr.h"
#include "sql/statement/statement.h"
#include "my_openssl_fips.h"
#include "pfs_metric_provider.h"
#include "sql/binlog/services/iterator/file_storage.h"
#include "sql/rpl_async_conn_failover_configuration_propagation.h"
#include "sql/rpl_filter.h"
#include "sql/rpl_gtid.h"
#include "sql/rpl_gtid_persist.h"
#include "sql/rpl_handler.h"
#include "sql/rpl_info_factory.h"
#include "sql/rpl_info_handler.h"
#include "sql/rpl_injector.h"
#include "sql/rpl_io_monitor.h"
#include "sql/rpl_log_encryption.h"
#include "sql/rpl_mi.h"
#include "sql/rpl_msr.h"
#include "sql/rpl_replica.h"
#include "sql/rpl_rli.h"
#include "sql/rpl_source.h"
#include "sql/rpl_trx_tracking.h"
#include "sql/sd_notify.h"
#include "sql/session_tracker.h"
#include "sql/set_var.h"
#include "sql/signal_handler.h"
#include "sql/sp_head.h"
#include "sql/sql_audit.h"
#include "sql/sql_base.h"
#include "sql/sql_callback.h"
#include "sql/sql_class.h"
#include "sql/sql_component.h"
#include "sql/sql_connect.h"
#include "sql/sql_error.h"
#include "sql/sql_event_tracking_to_audit_event_mapping.h"
#include "sql/sql_initialize.h"
#include "sql/sql_lex.h"
#include "sql/sql_list.h"
#include "sql/sql_locale.h"
#include "sql/sql_manager.h"
#include "sql/sql_parse.h"
#include "sql/sql_plugin.h"
#include "sql/sql_plugin_ref.h"
#include "sql/sql_reload.h"
#include "sql/sql_restart_server.h"
#include "sql/sql_servers.h"
#include "sql/sql_show.h"
#include "sql/sql_table.h"
#include "sql/sql_udf.h"
#include "sql/ssl_acceptor_context_iterator.h"
#include "sql/ssl_acceptor_context_operator.h"
#include "sql/ssl_acceptor_context_status.h"
#include "sql/ssl_init_callback.h"
#include "sql/sys_vars.h"
#include "sql/sys_vars_shared.h"
#include "sql/table_cache.h"
#include "sql/tc_log.h"
#include "sql/thd_raii.h"
#include "sql/thr_malloc.h"
#include "sql/transaction.h"
#include "sql/tztime.h"
#include "sql/udf_service_impl.h"
#include "sql/xa.h"
#include "sql/xa/transaction_cache.h"
#include "sql_common.h"
#include "sql_string.h"
#include "storage/myisam/ha_myisam.h"
#include "storage/perfschema/pfs_buffer_container.h"
#include "storage/perfschema/pfs_instr_class.h"
#include "storage/perfschema/pfs_services.h"
#include "storage/perfschema/telemetry_pfs_metrics.h"
#include "string_with_len.h"
#include "strings/str_alloc.h"
#include "strmake.h"
#include "strxmov.h"
#include "strxnmov.h"
#include "thr_lock.h"
#include "thr_mutex.h"
#include "typelib.h"
#include "violite.h"
#include "storage/perfschema/pfs_server.h"
#include <errno.h>
#include <fcntl.h>
#include <fenv.h>
#include <limits.h>
#include <grp.h>
#include <netdb.h>
#include <netinet/in.h>
#include <signal.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/prctl.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <unistd.h>
#include "unicode/putil.h"
#include "unicode/uclean.h"
#include <algorithm>
#include <atomic>
#include <functional>
#include <new>
#include "srv_session.h"
#include <mysql/components/minimal_chassis.h>
#include <mysql/components/services/dynamic_loader_scheme_file.h>
#include <mysql/components/services/mysql_psi_system_service.h>
#include <mysql/components/services/mysql_rwlock_service.h>
#include <mysql/components/services/ongoing_transaction_query_service.h>
#include "sql/auth/dynamic_privileges_impl.h"
#include "sql/command_mapping.h"
#include "sql/dd/dd.h"
#include "sql/dd/dd_kill_immunizer.h"
#include "sql/dd/dictionary.h"
#include "sql/dd/ndbinfo_schema/init.h"
#include "sql/dd/performance_schema/init.h"
#include "sql/dd/upgrade/server.h"
#include "sql/server_component/component_sys_var_service_imp.h"
#include "sql/server_component/log_builtins_filter_imp.h"
#include "sql/server_component/log_builtins_imp.h"
#include "sql/server_component/mysql_server_keyring_lockable_imp.h"
#include "sql/server_component/mysql_thd_store_imp.h"
#include "sql/server_component/persistent_dynamic_loader_imp.h"
#include <fpu_control.h>
#include "welcome_copyright_notice.h"

Classes

class  Set_kill_conn
 This class implements callback function used by close_connections() to set KILL_CONNECTION flag on all thds in thd list. More...
 
class  Call_close_conn
 This class implements callback function used by close_connections() to close vio connection for all thds in thd list. More...
 
class  Log_alive_individual_thread
 This class implements callback function used by log_alive_threads_info(Global. More...
 
class  Manifest_file_option_parser_helper
 Helper class for loading keyring component Keyring component is loaded after minimal chassis initialization. More...
 
class  Reset_thd_status
 Reset status for all threads. More...
 
class  Do_THD_reset_status
 

Namespaces

namespace  anonymous_namespace{mysqld.cc}
 
namespace  mysqld_funcs_unit_test
 

Macros

#define LOG_SUBSYSTEM_TAG   "Server"
 
#define mysqld_charset   &my_charset_latin1
 
#define mysqld_default_locale_name   "en_US"
 
#define NUMBER_OF_COMPONENTS   1
 
#define FIX_LOG_VAR(VAR, ALT)    if (!VAR || !*VAR) VAR = ALT;
 
#define FILE_LINE_ARGS
 
#define MYSQL_SERVER_SUFFIX_STR   MYSQL_SERVER_SUFFIX_DEF
 

Typedefs

using loader_type_t = mysql_service_dynamic_loader_t
 
using runtime_error_type_t = mysql_service_mysql_runtime_error_t
 
using psi_system_type_t = mysql_service_mysql_psi_system_v1_t
 
using rwlock_type_t = mysql_service_mysql_rwlock_v1_t
 
using loader_scheme_type_t = mysql_service_dynamic_loader_scheme_file_t
 
typedef weak_service_reference< const mysql_service_mysql_option_tracker_option_t, c_name, s_namesrv_weak_option_option
 

Functions

void setup_fpu ()
 
void my_server_abort ()
 This is a wrapper around abort() which ensures that abort() will be called exactly once, as calling it more than once might cause following problems: When original abort() is called there is a signal processing triggered, but only the first abort() causes the signal handler to be called, all other abort()s called by the other threads will cause immediate exit() call, which will also terminate the first abort() processing within the signal handler, aborting stacktrace printing, core writeout or any other processing. More...
 
void unregister_server_metric_sources ()
 
std::atomic< int > anonymous_namespace{mysqld.cc}::signal_hand_thr_exit_code (MYSQLD_SUCCESS_EXIT)
 This variable holds the exit value of the signal handler thread. More...
 
void anonymous_namespace{mysqld.cc}::substitute_progpath (char **argv)
 Inspects the program name in argv[0] and substitutes the full path of the executable. More...
 
void persisted_variables_refresh_keyring_support ()
 
void set_remaining_args (int argc, char **argv)
 
int * get_remaining_argc ()
 
char *** get_remaining_argv ()
 
ulong sql_rnd_with_mutex ()
 
struct System_status_varget_thd_status_var (THD *thd, bool *aggregated)
 
void thd_mem_cnt_alloc (THD *thd, size_t size, const char *key_name)
 
void thd_mem_cnt_free (THD *thd, size_t size)
 
static void option_error_reporter (enum loglevel level, uint ecode,...)
 
static void charset_error_reporter (loglevel level, uint ecode, va_list args)
 Character set and collation error reporter that prints to sql error log. More...
 
static int mysql_init_variables ()
 Initialize MySQL global variables to default values. More...
 
static int get_options (int *argc_ptr, char ***argv_ptr)
 Get server options from the command line, and perform related server initializations. More...
 
static void add_terminator (vector< my_option > *options)
 
bool mysqld_get_one_option (int, const struct my_option *, char *)
 
static void set_server_version (void)
 
static int init_thread_environment ()
 
static const char * get_relative_path (const char *path)
 
static int fix_paths (void)
 
static int test_if_case_insensitive (const char *dir_name)
 Check if file system used for databases is case insensitive. More...
 
static void end_ssl ()
 
void * signal_hand (void *arg)
 This thread handles SIGTERM, SIGQUIT, SIGHUP, SIGUSR1 and SIGUSR2 signals. More...
 
static void usage (void)
 
static void clean_up_mutexes (void)
 
static bool create_pid_file ()
 Create file to store pid number. More...
 
static void log_final_messages (int exit_code)
 
static void mysqld_exit (int exit_code)
 
static void delete_pid_file (myf flags)
 Remove the process' pid file. More...
 
static void clean_up (bool print_message)
 
static int handle_early_options ()
 Process command line options flagged as 'early'. More...
 
static void adjust_related_options (ulong *requested_open_files)
 
static void process_bootstrap ()
 Execute the bootstrap thread, if required. More...
 
static void init_server_psi_keys (void)
 Initialise all the performance schema instrumentation points used by the server. More...
 
static void server_components_initialized ()
 Notify any waiters that the server components have been initialized. More...
 
 REQUIRES_SERVICE_PLACEHOLDER (mysql_rwlock_v1)
 
 REQUIRES_SERVICE_PLACEHOLDER (mysql_psi_system_v1)
 
bool initialize_minimal_chassis (mysql_service_registry_t **registry)
 
bool deinitialize_minimal_chassis (mysql_service_registry_t *registry)
 
static bool component_infrastructure_init ()
 Initializes component infrastructure by bootstrapping core component subsystem. More...
 
static const std::string c_name ("mysql_server")
 
static const std::string s_name ("mysql_option_tracker_option")
 
static void server_component_init ()
 This function is used to initialize the mysql_server component services. More...
 
static void server_component_deinit ()
 This function is used to de-initialize the mysql_server component services. More...
 
static bool mysql_component_infrastructure_init ()
 Initializes MySQL Server component infrastructure part by initialize of dynamic loader persistence. More...
 
static bool component_infrastructure_deinit (bool print_message)
 De-initializes Component infrastructure by de-initialization of the MySQL Server services (persistent dynamic loader) followed by de-initailization of the core Components infrostructure. More...
 
static bool initialize_manifest_file_components ()
 
static void deinitialize_manifest_file_components ()
 
static void server_components_init_wait ()
 Block and wait until server components have been initialized. More...
 
void log_alive_threads_info (Global_THD_manager *thd_manager, uint n)
 This function logs number of threads, and info about first "n" number of threads that are still alive after forcefully shutdown, used by close_connections() More...
 
static void close_connections (void)
 
bool signal_restart_server ()
 Signal the server thread for restart. More...
 
void kill_mysql (void)
 
static void unireg_abort (int exit_code)
 
void clean_up_mysqld_mutexes ()
 
void gtid_server_cleanup ()
 GTID cleanup destroys objects and reset their pointer. More...
 
bool gtid_server_init ()
 GTID initialization. More...
 
static void free_connection_acceptors ()
 
static bool set_server_shutting_down ()
 
static void set_ports ()
 
static PasswdValue check_user (const char *user)
 
PasswdValue mysqld_funcs_unit_test::check_user_drv (const char *user)
 
static void set_user (const char *user, const PasswdValue &user_info_arg)
 
static void set_effective_user (const PasswdValue &user_info_arg)
 
static void set_root (const char *path)
 Change root user if started with –chroot . More...
 
bool check_address_is_wildcard (const char *address_value, size_t address_length)
 Check that an address value is a wildcard IP value, that is it has either the value 0.0.0.0 for IPv4 or the value ::1 in case IPv6, or has the specially treated symbol * as its value. More...
 
static bool parse_address_string (const char *begin_address_value, const char *end_address_value, std::string *address_value, std::string *network_namespace)
 Take a string representing host or ip address followed by optional delimiter '/' and namespace name and put address part and namespace part into corresponding output parameters. More...
 
static bool create_bind_address_info_from_string (const char *begin_address_value, const char *end_address_value, std::list< Bind_address_info > *valid_bind_addresses)
 Parse a value of address sub string with checking of address string format, extract address part and namespace part of the address value, and store their values into the argument valid_bind_addresses. More...
 
static bool check_bind_address_has_valid_value (const char *bind_address, std::list< Bind_address_info > *valid_bind_addresses)
 Check acceptable value(s) of parameter bind-address. More...
 
static bool check_admin_address_has_valid_value (const char *admin_bind_addr_str, Bind_address_info *admin_address_info)
 Check acceptable value(s) of the parameter admin-address. More...
 
static bool network_init (void)
 
static void empty_signal_handler (int sig)
 
void my_init_signals ()
 
static void start_signal_handler ()
 
void my_message_sql (uint error, const char *str, myf MyFlags)
 All global error messages are sent here where the first one is stored for the client. More...
 
void * my_str_malloc_mysqld (size_t size)
 
void my_str_free_mysqld (void *ptr)
 
void * my_str_realloc_mysqld (void *ptr, size_t size)
 
static int check_enough_stack_size (int recurse_level)
 This function is used to check for stack overrun for pathological cases of regular expressions and 'like' expressions. More...
 
static void init_sql_statement_names ()
 
static void init_sql_statement_info ()
 Initialize the command names array. More...
 
static void init_com_statement_info ()
 
static const char * rpl_make_log_name (PSI_memory_key key, const char *opt, const char *def, const char *ext)
 Create a replication file name or base for file names. More...
 
static void get_metric_connections (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_aborted_connects (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_acl_cache_items_count (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
template<typename T , typename U >
constexpr bool CanTypeFitValue (const U value)
 
template<typename T , typename U >
Clamp (U x)
 
template<typename T >
static void get_metric_simple_integer (void *measurement_context, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_aggregated_integer (void *measurement_context, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ongoing_anonymous_transaction_count (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_connection_errors_accept (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_connection_errors_max_connection (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_connection_errors_query_block (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_connection_errors_tcpwrap (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_global_mem_counter (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_open_table_definitions (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_open_tables (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_prepared_stmt_count (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_replica_open_temp_tables (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_accept_renegotiates (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_accepts (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_callback_cache_hits (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_used_session_cache_entries (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_session_cache_timeouts (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_session_cache_size (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_session_cache_overflows (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_session_cache_misses (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_session_cache_hits (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_finished_connects (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_finished_accepts (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_connect_renegotiates (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_ssl_client_connects (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_threads_created (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_threads_running (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_uptime (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_queries (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_threads_cached (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
static void get_metric_threads_connected (void *, measurement_delivery_callback_t delivery, void *delivery_context)
 
void register_server_metric_sources ()
 
int init_common_variables ()
 
static void * my_openssl_malloc (size_t size FILE_LINE_ARGS)
 
static void * my_openssl_realloc (void *ptr, size_t size FILE_LINE_ARGS)
 
static void my_openssl_free (void *ptr FILE_LINE_ARGS)
 
static int init_ssl ()
 
static int init_ssl_communication ()
 
static int generate_server_uuid ()
 Generate a UUID and save it into server_uuid variable. More...
 
static int flush_auto_options (const char *fname)
 Save all options which was auto-generated by server-self into the given file. More...
 
static int init_server_auto_options ()
 File 'auto.cnf' resides in the data directory to hold values of options that server evaluates itself and that needs to be durable to sustain the server restart. More...
 
static bool initialize_storage_engine (const char *se_name, const char *se_kind, plugin_ref *dest_plugin)
 
static void setup_error_log ()
 
static int setup_error_log_components ()
 Try to set the error logging pipeline from @global.log_error_services. More...
 
static bool icu_data_directory_is_valid (const char *directory_path)
 
static char * get_icu_data_directory_in_build_dir (char *to)
 
static char * get_icu_data_directory_in_install_dir (char *to)
 
static void init_icu_data_directory ()
 
static int init_server_components ()
 
static void test_lc_time_sz ()
 
static void set_super_read_only_post_init ()
 
static void calculate_mysql_home_from_my_progname ()
 
int mysqld_main (int argc, char **argv)
 
static void adjust_open_files_limit (ulong *requested_open_files)
 Adjust open_files_limit. More...
 
static void adjust_max_connections (ulong requested_open_files)
 
static void adjust_table_cache_size (ulong requested_open_files)
 
static void adjust_table_def_size ()
 
static int show_queries (THD *thd, SHOW_VAR *var, char *)
 
static int show_net_compression (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_net_compression_algorithm (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_net_compression_level (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_starttime (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_max_used_connections_time (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_num_thread_running (THD *, SHOW_VAR *var, char *buff)
 
static int show_num_thread_created (THD *, SHOW_VAR *var, char *buff)
 
static int show_thread_id_count (THD *, SHOW_VAR *var, char *buff)
 
static int show_aborted_connects (THD *, SHOW_VAR *var, char *buff)
 
static int show_acl_cache_items_count (THD *, SHOW_VAR *var, char *buff)
 
static int show_connection_errors_max_connection (THD *, SHOW_VAR *var, char *buff)
 
static int show_connection_errors_query_block (THD *, SHOW_VAR *var, char *buff)
 
static int show_connection_errors_accept (THD *, SHOW_VAR *var, char *buff)
 
static int show_connection_errors_tcpwrap (THD *, SHOW_VAR *var, char *buff)
 
static int show_flushstatustime (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_replica_rows_last_search_algorithm_used (THD *, SHOW_VAR *var, char *buff)
 
static int show_ongoing_automatic_gtid_violating_transaction_count (THD *, SHOW_VAR *var, char *buf)
 
static int show_ongoing_anonymous_gtid_violating_transaction_count (THD *, SHOW_VAR *var, char *buf)
 
static int show_ongoing_anonymous_transaction_count (THD *, SHOW_VAR *var, char *buf)
 
static int show_open_tables (THD *, SHOW_VAR *var, char *buff)
 
static int show_prepared_stmt_count (THD *, SHOW_VAR *var, char *buff)
 
static int show_global_mem_counter (THD *, SHOW_VAR *var, char *buff)
 
static int show_table_definitions (THD *, SHOW_VAR *var, char *buff)
 
static int show_ssl_get_version (THD *thd, SHOW_VAR *var, char *)
 
static int show_ssl_session_reused (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_ssl_get_default_timeout (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_ssl_get_verify_mode (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_ssl_get_verify_depth (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_ssl_get_cipher (THD *thd, SHOW_VAR *var, char *)
 
static int show_ssl_get_tls_sni_servername (THD *thd, SHOW_VAR *var, char *)
 
static int show_ssl_get_cipher_list (THD *thd, SHOW_VAR *var, char *buff)
 
static int show_replica_open_temp_tables (THD *, SHOW_VAR *var, char *buf)
 
static int show_tls_library_version (THD *, SHOW_VAR *var, char *buff)
 
static int show_resource_group_support (THD *, SHOW_VAR *var, char *buf)
 
static int show_telemetry_metrics_support (THD *, SHOW_VAR *var, char *buf)
 
static int show_telemetry_traces_support (THD *, SHOW_VAR *var, char *buf)
 
static int show_deprecated_use_i_s_processlist_count (THD *, SHOW_VAR *var, char *buf)
 
static int show_deprecated_use_i_s_processlist_last_timestamp (THD *, SHOW_VAR *var, char *buf)
 
int anonymous_namespace{mysqld.cc}::show_deprecated_use_fk_on_non_standard_key_count (THD *, SHOW_VAR *var, char *buf)
 
int anonymous_namespace{mysqld.cc}::show_deprecated_use_fk_on_non_standard_key_last_timestamp (THD *, SHOW_VAR *var, char *buf)
 
static void print_server_version (void)
 
static bool operator< (const my_option &a, const my_option &b)
 Compares two options' names, treats - and _ the same. More...
 
static void print_help ()
 
static bool is_rpl_global_filter_setting (char *argument)
 Check if it is a global replication filter setting. More...
 
void parse_filter_arg (char **channel_name, char **filter_val, char *argument)
 Extract channel name and filter value from argument. More...
 
static int parse_replicate_rewrite_db (char **key, char **val, char *argument)
 Extract channel name and filter value from argument. More...
 
static void * mysql_getopt_value (const char *keyname, size_t key_length, const struct my_option *option, int *error)
 Handle arguments for multiple key caches. More...
 
bool is_secure_file_path (const char *path)
 Test a file path to determine if the path is compatible with the secure file path restriction. More...
 
static bool check_secure_file_priv_path ()
 check_secure_file_priv_path : Checks path specified through –secure-file-priv and raises warning in following cases: More...
 
enum_server_operational_state get_server_state ()
 Returns the current state of the server : booting, operational or shutting down. More...
 
void refresh_status ()
 Reset global and session status variables. More...
 
void reset_status_by_thd ()
 
void init_client_psi_keys (void)
 
bool do_create_native_table_for_pfs (THD *thd, const Plugin_table *t)
 
bool create_native_table_for_pfs (const Plugin_table *t)
 
static bool do_drop_native_table_for_pfs (THD *thd, const char *schema_name, const char *table_name)
 
bool drop_native_table_for_pfs (const char *schema_name, const char *table_name)
 
bool mysqld_partial_revokes ()
 Get status partial_revokes on server. More...
 
void set_mysqld_partial_revokes (bool value)
 Set partial_revokes with a given value. More...
 
bool check_and_update_partial_revokes_sysvar (THD *thd)
 If there exists at least one restrictions on any user, then update global variables which track the partial_revokes. More...
 

Variables

const char * show_comp_option_name [] = {"YES", "NO", "DISABLED"}
 
static const char * tc_heuristic_recover_names []
 
static TYPELIB tc_heuristic_recover_typelib
 
const char * first_keyword = "first"
 
const char * binary_keyword = "BINARY"
 
const char * my_localhost = "localhost"
 
bool opt_large_files = sizeof(my_off_t) > 4
 
static bool opt_autocommit
 for –autocommit command-line option More...
 
static get_opt_arg_source source_autocommit
 
bool opt_help = false
 
bool opt_verbose = false
 
bool opt_validate_config = false
 
PSI_file_key key_file_binlog_cache
 
PSI_file_key key_file_binlog_index_cache
 
static PSI_mutex_key key_LOCK_status
 
static PSI_mutex_key key_LOCK_manager
 
static PSI_mutex_key key_LOCK_crypt
 
static PSI_mutex_key key_LOCK_user_conn
 
static PSI_mutex_key key_LOCK_global_system_variables
 
static PSI_mutex_key key_LOCK_prepared_stmt_count
 
static PSI_mutex_key key_LOCK_replica_list
 
static PSI_mutex_key key_LOCK_sql_replica_skip_counter
 
static PSI_mutex_key key_LOCK_replica_net_timeout
 
static PSI_mutex_key key_LOCK_replica_trans_dep_tracker
 
static PSI_mutex_key key_LOCK_uuid_generator
 
static PSI_mutex_key key_LOCK_error_messages
 
static PSI_mutex_key key_LOCK_default_password_lifetime
 
static PSI_mutex_key key_LOCK_mandatory_roles
 
static PSI_mutex_key key_LOCK_password_history
 
static PSI_mutex_key key_LOCK_password_reuse_interval
 
static PSI_mutex_key key_LOCK_sql_rand
 
static PSI_mutex_key key_LOCK_log_throttle_qni
 
static PSI_mutex_key key_LOCK_reset_gtid_table
 
static PSI_mutex_key key_LOCK_compress_gtid_table
 
static PSI_mutex_key key_LOCK_collect_instance_log
 
static PSI_mutex_key key_BINLOG_LOCK_commit
 
static PSI_mutex_key key_BINLOG_LOCK_commit_queue
 
static PSI_mutex_key key_BINLOG_LOCK_after_commit
 
static PSI_mutex_key key_BINLOG_LOCK_after_commit_queue
 
static PSI_mutex_key key_BINLOG_LOCK_done
 
static PSI_mutex_key key_BINLOG_LOCK_flush_queue
 
static PSI_mutex_key key_BINLOG_LOCK_index
 
static PSI_mutex_key key_BINLOG_LOCK_log
 
static PSI_mutex_key key_BINLOG_LOCK_binlog_end_pos
 
static PSI_mutex_key key_BINLOG_LOCK_sync
 
static PSI_mutex_key key_BINLOG_LOCK_sync_queue
 
static PSI_mutex_key key_BINLOG_LOCK_xids
 
static PSI_mutex_key key_BINLOG_LOCK_log_info
 
static PSI_mutex_key key_BINLOG_LOCK_wait_for_group_turn
 
static PSI_rwlock_key key_rwlock_global_tsid_lock
 
PSI_rwlock_key key_rwlock_gtid_mode_lock
 
static PSI_rwlock_key key_rwlock_LOCK_system_variables_hash
 
static PSI_rwlock_key key_rwlock_LOCK_sys_init_connect
 
static PSI_rwlock_key key_rwlock_LOCK_sys_init_replica
 
static PSI_cond_key key_BINLOG_COND_done
 
static PSI_cond_key key_BINLOG_COND_flush_queue
 
static PSI_cond_key key_BINLOG_update_cond
 
static PSI_cond_key key_BINLOG_prep_xids_cond
 
static PSI_cond_key key_COND_manager
 
static PSI_cond_key key_COND_compress_gtid_table
 
static PSI_cond_key key_BINLOG_COND_wait_for_group_turn
 
static PSI_thread_key key_thread_signal_hand
 
static PSI_thread_key key_thread_main
 
static PSI_file_key key_file_casetest
 
static PSI_file_key key_file_pid
 
static PSI_mutex_key key_LOCK_socket_listener_active
 
static PSI_cond_key key_COND_socket_listener_active
 
static PSI_mutex_key key_LOCK_start_signal_handler
 
static PSI_cond_key key_COND_start_signal_handler
 
static PSI_mutex_key key_LOCK_server_started
 
static PSI_cond_key key_COND_server_started
 
static PSI_mutex_key key_LOCK_keyring_operations
 
static PSI_mutex_key key_LOCK_tls_ctx_options
 
static PSI_mutex_key key_LOCK_admin_tls_ctx_options
 
static PSI_mutex_key key_LOCK_rotate_binlog_master_key
 
static PSI_mutex_key key_LOCK_partial_revokes
 
static PSI_mutex_key key_LOCK_authentication_policy
 
static PSI_mutex_key key_LOCK_global_conn_mem_limit
 
static PSI_rwlock_key key_rwlock_LOCK_server_shutting_down
 
PSI_statement_info stmt_info_rpl
 Statement instrumentation key for replication. More...
 
static bool lower_case_table_names_used = false
 
static bool socket_listener_active = false
 
static int pipe_write_fd = -1
 
static bool opt_daemonize = false
 
bool opt_debugging = false
 
static bool opt_external_locking = false
 
static bool opt_console = false
 
static bool opt_short_log_format = false
 
static char * mysqld_user
 
static char * mysqld_chroot
 
static const char * default_character_set_name
 
static const char * character_set_filesystem_name
 
static const char * lc_messages
 
static const char * lc_time_names_name
 
char * my_bind_addr_str
 
char * my_admin_bind_addr_str
 
uint mysqld_admin_port
 
bool listen_admin_interface_in_separate_thread
 
static const char * default_collation_name
 
const char * default_storage_engine
 
const char * default_tmp_storage_engine
 
ulonglong temptable_max_ram
 
ulonglong temptable_max_mmap
 
bool temptable_use_mmap
 
static char compiled_default_collation_name [] = MYSQL_DEFAULT_COLLATION_NAME
 
static bool binlog_format_used = false
 
LEX_STRING opt_init_connect
 
LEX_STRING opt_init_replica
 
LEX_STRING opt_mandatory_roles
 
bool opt_mandatory_roles_cache = false
 
bool opt_always_activate_granted_roles = false
 
bool opt_bin_log
 
bool opt_general_log
 
bool opt_slow_log
 
bool opt_general_log_raw
 
ulonglong log_output_options
 
bool opt_log_queries_not_using_indexes = false
 
ulong opt_log_throttle_queries_not_using_indexes = 0
 
bool opt_log_slow_extra = false
 
bool opt_disable_networking = false
 
bool opt_skip_show_db = false
 
bool opt_skip_name_resolve = false
 
bool server_id_supplied = false
 
static bool opt_endinfo
 
bool using_udf_functions
 
bool locked_in_memory
 
bool opt_using_transactions
 
ulong opt_tc_log_size
 
std::atomic< int32connection_events_loop_aborted_flag
 
static std::atomic< enum_server_operational_stateserver_operational_state
 
char * opt_log_error_suppression_list
 
char * opt_log_error_services
 
char * opt_keyring_migration_user = nullptr
 
char * opt_keyring_migration_host = nullptr
 
char * opt_keyring_migration_password = nullptr
 
char * opt_keyring_migration_socket = nullptr
 
char * opt_keyring_migration_source = nullptr
 
char * opt_keyring_migration_destination = nullptr
 
ulong opt_keyring_migration_port = 0
 
bool migrate_connect_options = false
 Variable to check if connection related options are set as part of keyring migration. More...
 
uint host_cache_size
 The size of the host_cache. More...
 
ulong log_error_verbosity = 3
 
bool opt_keyring_migration_to_component = false
 
bool opt_keyring_migration_from_component = false
 
bool opt_persist_sensitive_variables_in_plaintext {true}
 
int argc_cached
 Stores the value of argc during server start up that contains the count of arguments specified by the user in the configuration files and command line. More...
 
char ** argv_cached
 Stores the value of argv during server start up that contains the vector of arguments specified by the user in the configuration files and command line. More...
 
long opt_upgrade_mode = UPGRADE_AUTO
 
bool opt_initialize = false
 
bool opt_skip_replica_start = false
 If set, slave is not autostarted. More...
 
bool opt_enable_named_pipe = false
 
bool opt_local_infile
 
bool opt_replica_compressed_protocol
 
bool opt_safe_user_create = false
 
bool opt_show_replica_auth_info
 
bool opt_log_replica_updates = false
 
char * opt_replica_skip_errors
 
bool opt_replica_allow_batching = true
 
handlertonheap_hton
 
handlertontemptable_hton
 
handlertonmyisam_hton
 
handlertoninnodb_hton
 
char * opt_disabled_storage_engines
 
uint opt_server_id_bits = 0
 
ulong opt_server_id_mask = 0
 
bool read_only = false
 
bool opt_readonly = false
 
bool super_read_only = false
 
bool opt_super_readonly = false
 
bool opt_require_secure_transport = false
 
bool relay_log_purge
 
bool relay_log_recovery
 
bool opt_allow_suspicious_udfs
 
const char * opt_secure_file_priv
 
bool opt_log_slow_admin_statements = false
 
bool opt_log_slow_replica_statements = false
 
bool lower_case_file_system = false
 
bool opt_large_pages = false
 
bool opt_super_large_pages = false
 
bool opt_myisam_use_mmap = false
 
std::atomic< bool > offline_mode
 
uint opt_large_page_size = 0
 
uint default_password_lifetime = 0
 
bool password_require_current = false
 
std::atomic< bool > partial_revokes
 
bool opt_partial_revokes
 
mysql_mutex_t LOCK_default_password_lifetime
 
mysql_mutex_t LOCK_mandatory_roles
 
mysql_mutex_t LOCK_password_history
 
mysql_mutex_t LOCK_password_reuse_interval
 
mysql_mutex_t LOCK_tls_ctx_options
 
mysql_mutex_t LOCK_admin_tls_ctx_options
 
mysql_mutex_t LOCK_partial_revokes
 
bool trust_function_creators = false
 
bool check_proxy_users = false
 
bool sha256_password_proxy_users = false
 
volatile bool mqh_used = false
 
bool opt_noacl = false
 
bool sp_automatic_privileges = true
 
int32_t opt_regexp_time_limit
 
int32_t opt_regexp_stack_limit
 
bool clone_startup = false
 True, if restarted from a cloned database. More...
 
bool clone_recovery_error = false
 True, if clone recovery has failed. More...
 
ulong binlog_row_event_max_size
 
ulong binlog_checksum_options
 
ulong binlog_row_metadata
 
bool opt_source_verify_checksum = false
 
bool opt_replica_sql_verify_checksum = true
 
const char * binlog_format_names [] = {"MIXED", "STATEMENT", "ROW", NullS}
 
bool binlog_gtid_simple_recovery
 
ulong binlog_error_action
 
const char * binlog_error_action_list []
 
uint32 gtid_executed_compression_period = 0
 
bool opt_log_unsafe_statements
 
const char * timestamp_type_names [] = {"UTC", "SYSTEM", NullS}
 
ulong opt_log_timestamps
 
uint mysqld_port
 
uint test_flags
 
uint select_errors
 
uint ha_open_options
 
uint mysqld_port_timeout
 
ulong delay_key_write_options
 
uint protocol_version
 
uint lower_case_table_names
 
long tc_heuristic_recover
 
ulong back_log
 
ulong connect_timeout
 
ulong server_id
 
ulong table_cache_size
 
ulong table_cache_instances
 
ulong table_cache_size_per_instance
 
ulong schema_def_size
 
ulong stored_program_def_size
 
ulong table_def_size
 
ulong tablespace_def_size
 
ulong what_to_log
 
ulong slow_launch_time
 
std::atomic< int32atomic_replica_open_temp_tables {0}
 
ulong open_files_limit
 
ulong max_binlog_size
 
ulong max_relay_log_size
 
ulong slave_trans_retries
 
uint replica_net_timeout
 
ulong replica_exec_mode_options
 
ulonglong replica_type_conversions_options
 
ulong opt_mts_replica_parallel_workers
 
ulonglong opt_mts_pending_jobs_size_max
 
bool opt_replica_preserve_commit_order
 
uint replica_rows_last_search_algorithm_used
 
ulong mts_parallel_option
 
ulong binlog_cache_size = 0
 
ulonglong max_binlog_cache_size = 0
 
ulong replica_max_allowed_packet = 0
 
ulong binlog_stmt_cache_size = 0
 
int32 opt_binlog_max_flush_queue_time = 0
 
long opt_binlog_group_commit_sync_delay = 0
 
ulong opt_binlog_group_commit_sync_no_delay_count = 0
 
ulonglong max_binlog_stmt_cache_size = 0
 
ulong refresh_version
 
std::atomic< query_id_tatomic_global_query_id {1}
 
ulong aborted_threads
 
ulong delayed_insert_timeout
 
ulong delayed_insert_limit
 
ulong delayed_queue_size
 
ulong delayed_insert_threads
 
ulong delayed_insert_writes
 
ulong delayed_rows_in_use
 
ulong delayed_insert_errors
 
ulong flush_time
 
ulong specialflag = 0
 
ulong binlog_cache_use = 0
 
ulong binlog_cache_disk_use = 0
 
ulong binlog_stmt_cache_use = 0
 
ulong binlog_stmt_cache_disk_use = 0
 
ulong max_connections
 
ulong max_connect_errors
 
ulong rpl_stop_replica_timeout = LONG_TIMEOUT
 
bool thread_cache_size_specified = false
 
bool host_cache_size_specified = false
 
bool table_definition_cache_specified = false
 
ulong locked_account_connection_count = 0
 
ulonglong global_conn_mem_limit = 0
 
ulonglong global_conn_mem_counter = 0
 
Deployed_componentsg_deployed_components = nullptr
 This variable holds handle to the object that's responsible for loading/unloading components from manifest file. More...
 
ulong max_prepared_stmt_count
 Limit of the total number of prepared statements in the server. More...
 
ulong prepared_stmt_count = 0
 Current total number of prepared statements in the server. More...
 
ulong current_pid
 
uint sync_binlog_period = 0
 
uint sync_relaylog_period = 0
 
uint sync_relayloginfo_period = 0
 
uint sync_masterinfo_period = 0
 
uint opt_mta_checkpoint_period
 
uint opt_mta_checkpoint_group
 
ulong binlog_expire_logs_seconds = 0
 
bool opt_binlog_expire_logs_auto_purge {true}
 
ulong stored_program_cache_size = 0
 Soft upper limit for number of sp_head objects that can be stored in the sp_cache for one connection. More...
 
bool persisted_globals_load = true
 
bool opt_keyring_operations = true
 
bool opt_table_encryption_privilege_check = false
 
const double log_10 []
 
const int index_ext_length = 6
 
const char * index_ext = ".index"
 
const int relay_ext_length = 10
 
const char * relay_ext = "-relay-bin"
 
bool log_bin_supplied = false
 
time_t server_start_time
 
time_t flush_status_time
 
std::atomic< time_t > last_mixed_non_transactional_engine_warning = 0
 Stores the last time the warning for non-composable engine is emitted. More...
 
char server_uuid [UUID_LENGTH+1]
 
const char * server_uuid_ptr
 
char server_build_id [42]
 
const char * server_build_id_ptr
 
char mysql_home [FN_REFLEN]
 
char pidfile_name [FN_REFLEN]
 
char system_time_zone_dst_on [30]
 
char system_time_zone_dst_off [30]
 
char default_logfile_name [FN_REFLEN]
 
char default_binlogfile_name [FN_REFLEN]
 
char default_binlog_index_name [FN_REFLEN+index_ext_length]
 
char default_relaylogfile_name [FN_REFLEN+relay_ext_length]
 
char default_relaylog_index_name [FN_REFLEN+relay_ext_length+index_ext_length]
 
char * default_tz_name
 
static char errorlog_filename_buff [FN_REFLEN]
 
const char * log_error_dest
 
const char * my_share_dir [FN_REFLEN]
 
char glob_hostname [HOSTNAME_LENGTH+1]
 
char mysql_real_data_home [FN_REFLEN]
 
char lc_messages_dir [FN_REFLEN]
 
char reg_ext [FN_EXTLEN]
 
char mysql_charsets_dir [FN_REFLEN]
 
char * opt_init_file
 
const char * opt_tc_log_file
 
char * lc_messages_dir_ptr
 
char mysql_unpacked_real_data_home [FN_REFLEN]
 
size_t mysql_unpacked_real_data_home_len
 
size_t mysql_data_home_len = 1
 
uint reg_ext_length
 
char logname_path [FN_REFLEN]
 
char slow_logname_path [FN_REFLEN]
 
char secure_file_real_path [FN_REFLEN]
 
Time_zonedefault_tz
 
char * mysql_data_home = const_cast<char *>(".")
 
const char * mysql_real_data_home_ptr = mysql_real_data_home
 
char * opt_protocol_compression_algorithms
 
char server_version [SERVER_VERSION_LENGTH]
 
const char * mysqld_unix_port
 
char * opt_mysql_tmpdir
 
char * opt_authentication_policy
 
const char * in_left_expr_name = "<left expr>"
 name of reference on left expression in rewritten IN subquery More...
 
my_decimal decimal_zero
 
ulong connection_errors_internal = 0
 Number of connection errors from internal server errors. More...
 
ulong connection_errors_peer_addr = 0
 Number of errors when reading the peer address. More...
 
Eq_creator eq_creator
 
Ne_creator ne_creator
 
Equal_creator equal_creator
 
Gt_creator gt_creator
 
Lt_creator lt_creator
 
Ge_creator ge_creator
 
Le_creator le_creator
 
Rpl_global_filter rpl_global_filter
 
Rpl_filterbinlog_filter
 
Rpl_acf_configuration_handlerrpl_acf_configuration_handler = nullptr
 
Source_IO_monitorrpl_source_io_monitor = nullptr
 
Udf_load_service udf_load_service
 
struct System_variables global_system_variables
 
struct System_variables max_system_variables
 
struct System_status_var global_status_var
 
struct aggregated_stats global_aggregated_stats
 
MY_TMPDIR mysql_tmpdir_list
 
CHARSET_INFOsystem_charset_info
 
CHARSET_INFOfiles_charset_info
 
CHARSET_INFOnational_charset_info
 
CHARSET_INFOtable_alias_charset
 
CHARSET_INFOcharacter_set_filesystem
 
MY_LOCALEmy_default_lc_messages
 
MY_LOCALEmy_default_lc_time_names
 
SHOW_COMP_OPTION have_symlink
 
SHOW_COMP_OPTION have_dlopen
 
SHOW_COMP_OPTION have_query_cache
 
SHOW_COMP_OPTION have_geometry
 
SHOW_COMP_OPTION have_rtree_keys
 
SHOW_COMP_OPTION have_compress
 
SHOW_COMP_OPTION have_profiling
 
SHOW_COMP_OPTION have_statement_timeout = SHOW_OPTION_DISABLED
 
thread_local MEM_ROOT ** THR_MALLOC = nullptr
 
mysql_mutex_t LOCK_status
 
mysql_mutex_t LOCK_uuid_generator
 
mysql_mutex_t LOCK_crypt
 
mysql_mutex_t LOCK_global_system_variables
 
mysql_mutex_t LOCK_user_conn
 
mysql_mutex_t LOCK_error_messages
 
mysql_mutex_t LOCK_sql_rand
 
mysql_mutex_t LOCK_prepared_stmt_count
 The below lock protects access to two global server variables: max_prepared_stmt_count and prepared_stmt_count. More...
 
mysql_mutex_t LOCK_replica_list
 Protects slave_list in rpl_source.cc; the list of currently running dump threads with metadata for the replica. More...
 
mysql_mutex_t LOCK_sql_replica_skip_counter
 
mysql_mutex_t LOCK_replica_net_timeout
 
mysql_mutex_t LOCK_replica_trans_dep_tracker
 
mysql_mutex_t LOCK_log_throttle_qni
 
mysql_rwlock_t LOCK_sys_init_connect
 
mysql_rwlock_t LOCK_sys_init_replica
 
mysql_rwlock_t LOCK_system_variables_hash
 
my_thread_handle signal_thread_id
 
sigset_t mysqld_signal_mask
 
my_thread_attr_t connection_attrib
 
mysql_mutex_t LOCK_server_started
 
mysql_cond_t COND_server_started
 
mysql_mutex_t LOCK_reset_gtid_table
 
mysql_mutex_t LOCK_compress_gtid_table
 
mysql_cond_t COND_compress_gtid_table
 
mysql_mutex_t LOCK_collect_instance_log
 
mysql_mutex_t LOCK_socket_listener_active
 
mysql_cond_t COND_socket_listener_active
 
mysql_mutex_t LOCK_start_signal_handler
 
mysql_cond_t COND_start_signal_handler
 
mysql_mutex_t LOCK_keyring_operations
 
mysql_mutex_t LOCK_rotate_binlog_master_key
 
mysql_mutex_t LOCK_authentication_policy
 
mysql_mutex_t LOCK_global_conn_mem_limit
 
mysql_rwlock_t LOCK_server_shutting_down
 
bool server_shutting_down = false
 
bool mysqld_server_started = false
 
static bool mysqld_process_must_end_at_startup = false
 Set to true to signal at startup if the process must die. More...
 
uint report_port = 0
 
ulong source_retry_count = 0
 
char * report_user
 
char * report_password
 
char * report_host
 
char * opt_relay_logname = nullptr
 
char * opt_relaylog_index_name = nullptr
 
bool opt_relaylog_index_name_supplied = false
 
bool opt_relay_logname_supplied = false
 
bool log_replica_updates_supplied = false
 
bool replica_preserve_commit_order_supplied = false
 
char * opt_general_logname
 
char * opt_slow_logname
 
char * opt_bin_logname
 
bool binlog_expire_logs_seconds_supplied = false
 
static bool opt_myisam_log
 
static ulong opt_specialflag
 
char * opt_binlog_index_name
 
char * mysql_home_ptr
 
char * pidfile_name_ptr
 
static MEM_ROOT argv_alloc {PSI_NOT_INSTRUMENTED, 512}
 Memory for allocating command line arguments, after load_defaults(). More...
 
static int remaining_argc
 Remaining command line arguments (count), filtered by handle_options(). More...
 
static char ** remaining_argv
 Remaining command line arguments (arguments), filtered by handle_options(). More...
 
int orig_argc
 Holds the "original" (i.e. More...
 
char ** orig_argv
 
FILE * anonymous_namespace{mysqld.cc}::nstdout = nullptr
 
char anonymous_namespace{mysqld.cc}::my_progpath [FN_REFLEN]
 
const char * anonymous_namespace{mysqld.cc}::my_orig_progname = nullptr
 
static Connection_acceptor< Mysqld_socket_listener > * mysqld_socket_acceptor
 
Checkable_rwlockglobal_tsid_lock = nullptr
 Protects Gtid_state. See comment above gtid_state for details. More...
 
Tsid_mapglobal_tsid_map = nullptr
 
Gtid_stategtid_state = nullptr
 Global state of GTIDs. More...
 
Gtid_table_persistorgtid_table_persistor = nullptr
 
static Persisted_variables_cache persisted_variables_cache
 
struct rand_struct sql_rand
 used by sql_class.cc:THD::THD() More...
 
PasswdValue user_info
 
static my_thread_t main_thread_id
 
bool dynamic_plugins_are_initialized = false
 Flag indicating if dynamic plugins have been loaded. More...
 
static const char * default_dbug_option
 
ulong opt_ssl_fips_mode = SSL_FIPS_MODE_OFF
 
static bool pid_file_created = false
 
const mysql_service_mysql_runtime_error_terror_service
 
const mysql_service_mysql_psi_system_v1_tsystem_service
 
const mysql_service_mysql_rwlock_v1_trwlock_service
 
mysql_service_registry_tsrv_registry
 
mysql_service_registry_tsrv_registry_no_lock
 
mysql_service_registry_registration_tsrv_registry_registration
 
mysql_service_registry_registration_tsrv_registry_registration_no_lock {nullptr}
 
const mysql_service_dynamic_loader_scheme_file_tscheme_file_srv
 
const char * component_urns [] = {"file://component_reference_cache"}
 
const char * load_default_groups []
 
SHOW_VAR com_status_vars []
 
LEX_CSTRING sql_statement_names [(uint) SQLCOM_END+1]
 
PSI_statement_info sql_statement_info [(uint) SQLCOM_END+1]
 Statement instrumentation keys (sql). More...
 
PSI_statement_info com_statement_info [(uint) COM_END+1]
 Statement instrumentation keys (com). More...
 
static const char * COM_COMMON_DESCRIPTION
 
static PSI_metric_info_v1 com_metrics []
 
static PSI_metric_info_v1 core_metrics []
 
static PSI_metric_info_v1 connection_metrics []
 
static PSI_metric_info_v1 handler_metrics []
 
static PSI_metric_info_v1 myisam_metrics []
 
static PSI_metric_info_v1 ssl_metrics []
 
static PSI_meter_info_v1 core_meters []
 
static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED
 
static constexpr const ulong TABLE_OPEN_CACHE_MIN {400}
 
vector< my_optionall_options
 
struct my_option my_long_early_options []
 
struct my_option my_long_options []
 System variables are automatically command-line options (few exceptions are documented in sys_var.h), so don't need to be listed here. More...
 
SHOW_VAR status_vars []
 
PSI_mutex_key key_LOCK_tc
 
PSI_mutex_key key_hash_filo_lock
 
PSI_mutex_key key_LOCK_error_log
 
PSI_mutex_key key_LOCK_thd_data
 
PSI_mutex_key key_LOCK_thd_sysvar
 
PSI_mutex_key key_LOCK_thd_protocol
 
PSI_mutex_key key_LOCK_thd_security_ctx
 
PSI_mutex_key key_LOG_LOCK_log
 
PSI_mutex_key key_source_info_data_lock
 
PSI_mutex_key key_source_info_run_lock
 
PSI_mutex_key key_source_info_sleep_lock
 
PSI_mutex_key key_source_info_thd_lock
 
PSI_mutex_key key_source_info_rotate_lock
 
PSI_mutex_key key_mutex_replica_reporting_capability_err_lock
 
PSI_mutex_key key_relay_log_info_data_lock
 
PSI_mutex_key key_relay_log_info_sleep_lock
 
PSI_mutex_key key_relay_log_info_thd_lock
 
PSI_mutex_key key_relay_log_info_log_space_lock
 
PSI_mutex_key key_relay_log_info_run_lock
 
PSI_mutex_key key_mutex_slave_parallel_pend_jobs
 
PSI_mutex_key key_mutex_slave_parallel_worker_count
 
PSI_mutex_key key_mutex_slave_parallel_worker
 
PSI_mutex_key key_structure_guard_mutex
 
PSI_mutex_key key_TABLE_SHARE_LOCK_ha_data
 
PSI_mutex_key key_LOCK_query_plan
 
PSI_mutex_key key_LOCK_thd_query
 
PSI_mutex_key key_LOCK_cost_const
 
PSI_mutex_key key_LOCK_current_cond
 
PSI_mutex_key key_RELAYLOG_LOCK_commit
 
PSI_mutex_key key_RELAYLOG_LOCK_index
 
PSI_mutex_key key_RELAYLOG_LOCK_log
 
PSI_mutex_key key_RELAYLOG_LOCK_log_end_pos
 
PSI_mutex_key key_RELAYLOG_LOCK_sync
 
PSI_mutex_key key_RELAYLOG_LOCK_xids
 
PSI_mutex_key key_gtid_ensure_index_mutex
 
PSI_mutex_key key_object_cache_mutex
 
PSI_cond_key key_object_loading_cond
 
PSI_mutex_key key_mta_temp_table_LOCK
 
PSI_mutex_key key_mta_gaq_LOCK
 
PSI_mutex_key key_thd_timer_mutex
 
PSI_mutex_key key_commit_order_manager_mutex
 
PSI_mutex_key key_mutex_replica_worker_hash
 
PSI_mutex_key key_monitor_info_run_lock
 
PSI_mutex_key key_LOCK_delegate_connection_mutex
 
PSI_mutex_key key_LOCK_group_replication_connection_mutex
 
static PSI_mutex_info all_server_mutexes []
 
PSI_rwlock_key key_rwlock_LOCK_logger
 
PSI_rwlock_key key_rwlock_channel_map_lock
 
PSI_rwlock_key key_rwlock_channel_lock
 
PSI_rwlock_key key_rwlock_receiver_tsid_lock
 
PSI_rwlock_key key_rwlock_rpl_filter_lock
 
PSI_rwlock_key key_rwlock_channel_to_filter_lock
 
PSI_rwlock_key key_rwlock_Trans_delegate_lock
 
PSI_rwlock_key key_rwlock_Server_state_delegate_lock
 
PSI_rwlock_key key_rwlock_Binlog_storage_delegate_lock
 
PSI_rwlock_key key_rwlock_Binlog_transmit_delegate_lock
 
PSI_rwlock_key key_rwlock_Binlog_relay_IO_delegate_lock
 
PSI_rwlock_key key_rwlock_resource_group_mgr_map_lock
 
static PSI_rwlock_info all_server_rwlocks []
 
PSI_cond_key key_PAGE_cond
 
PSI_cond_key key_COND_active
 
PSI_cond_key key_COND_pool
 
PSI_cond_key key_COND_cache_status_changed
 
PSI_cond_key key_item_func_sleep_cond
 
PSI_cond_key key_source_info_data_cond
 
PSI_cond_key key_source_info_start_cond
 
PSI_cond_key key_source_info_stop_cond
 
PSI_cond_key key_source_info_sleep_cond
 
PSI_cond_key key_source_info_rotate_cond
 
PSI_cond_key key_relay_log_info_data_cond
 
PSI_cond_key key_relay_log_info_log_space_cond
 
PSI_cond_key key_relay_log_info_start_cond
 
PSI_cond_key key_relay_log_info_stop_cond
 
PSI_cond_key key_relay_log_info_sleep_cond
 
PSI_cond_key key_cond_slave_parallel_pend_jobs
 
PSI_cond_key key_cond_slave_parallel_worker
 
PSI_cond_key key_cond_mta_gaq
 
PSI_cond_key key_RELAYLOG_update_cond
 
PSI_cond_key key_gtid_ensure_index_cond
 
PSI_cond_key key_COND_thr_lock
 
PSI_cond_key key_commit_order_manager_cond
 
PSI_cond_key key_cond_slave_worker_hash
 
PSI_cond_key key_monitor_info_run_cond
 
PSI_cond_key key_COND_delegate_connection_cond_var
 
PSI_cond_key key_COND_group_replication_connection_cond_var
 
static PSI_cond_info all_server_conds []
 
PSI_thread_key key_thread_bootstrap
 
PSI_thread_key key_thread_handle_manager
 
PSI_thread_key key_thread_one_connection
 
PSI_thread_key key_thread_compress_gtid_table
 
PSI_thread_key key_thread_parser_service
 
PSI_thread_key key_thread_handle_con_admin_sockets
 
static PSI_thread_info all_server_threads []
 
PSI_file_key key_file_binlog
 
PSI_file_key key_file_binlog_index
 
PSI_file_key key_file_dbopt
 
PSI_file_key key_file_ERRMSG
 
PSI_file_key key_select_to_file
 
PSI_file_key key_file_fileparser
 
PSI_file_key key_file_frm
 
PSI_file_key key_file_load
 
PSI_file_key key_file_loadfile
 
PSI_file_key key_file_log_event_data
 
PSI_file_key key_file_log_event_info
 
PSI_file_key key_file_misc
 
PSI_file_key key_file_tclog
 
PSI_file_key key_file_trg
 
PSI_file_key key_file_trn
 
PSI_file_key key_file_init
 
PSI_file_key key_file_general_log
 
PSI_file_key key_file_slow_log
 
PSI_file_key key_file_relaylog
 
PSI_file_key key_file_relaylog_cache
 
PSI_file_key key_file_relaylog_index
 
PSI_file_key key_file_relaylog_index_cache
 
PSI_file_key key_file_sdi
 
PSI_file_key key_file_hash_join
 
static PSI_file_info all_server_files []
 
PSI_stage_info stage_after_create = { 0, "After create", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_alter_inplace_prepare = { 0, "preparing for alter table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_alter_inplace = { 0, "altering table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_alter_inplace_commit = { 0, "committing alter table to storage engine", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_changing_source = { 0, "Changing replication source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_checking_source_version = { 0, "Checking source version", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_checking_permissions = { 0, "checking permissions", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_cleaning_up = { 0, "cleaning up", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_closing_tables = { 0, "closing tables", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_compressing_gtid_table = { 0, "Compressing gtid_executed table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_connecting_to_source = { 0, "Connecting to source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_converting_heap_to_ondisk = { 0, "converting HEAP to ondisk", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_copy_to_tmp_table = { 0, "copy to tmp table", PSI_FLAG_STAGE_PROGRESS, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_creating_table = { 0, "creating table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_creating_tmp_table = { 0, "Creating tmp table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_deleting_from_main_table = { 0, "deleting from main table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_deleting_from_reference_tables = { 0, "deleting from reference tables", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_discard_or_import_tablespace = { 0, "discard_or_import_tablespace", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_end = { 0, "end", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_executing = { 0, "executing", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_execution_of_init_command = { 0, "Execution of init_command", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_explaining = { 0, "explaining", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_finished_reading_one_binlog_switching_to_next_binlog = { 0, "Finished reading one binlog; switching to next binlog", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_flushing_applier_and_connection_metadata = { 0, "Flushing relay log and source info repository.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_flushing_applier_metadata = { 0, "Flushing relay-log info file.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_freeing_items = { 0, "freeing items", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_fulltext_initialization = { 0, "FULLTEXT initialization", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_init = { 0, "init", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_killing_replica = { 0, "Killing replica", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_logging_slow_query = { 0, "logging slow query", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_making_temp_file_append_before_load_data = { 0, "Making temporary file (append) before replaying LOAD DATA INFILE", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_manage_keys = { 0, "manage keys", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_source_has_sent_all_binlog_to_replica = { 0, "Source has sent all binlog to replica; waiting for more updates", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_opening_tables = { 0, "Opening tables", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_optimizing = { 0, "optimizing", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_preparing = { 0, "preparing", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_purging_old_relay_logs = { 0, "Purging old relay logs", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_query_end = { 0, "query end", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_queueing_source_event_to_the_relay_log = { 0, "Queueing source event to the relay log", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_reading_event_from_the_relay_log = { 0, "Reading event from the relay log", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_registering_replica_on_source = { 0, "Registering replica on source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_removing_tmp_table = { 0, "removing tmp table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rename = { 0, "rename", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rename_result_table = { 0, "rename result table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_requesting_binlog_dump = { 0, "Requesting binlog dump", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_searching_rows_for_update = { 0, "Searching rows for update", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_sending_binlog_event_to_replica = { 0, "Sending binlog event to replica", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_setup = { 0, "setup", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_has_read_all_relay_log = { 0, "Replica has read all relay log; waiting for more updates", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_reconnecting_after_failed_binlog_dump_request { 0, "Reconnecting after a failed binlog dump request", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_reconnecting_after_failed_event_read { 0, "Reconnecting after a failed source event read", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_reconnecting_after_failed_registration_on_source { 0, "Reconnecting after a failed registration on source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_event_from_coordinator = { 0, "Waiting for an event from Coordinator", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_for_workers_to_process_queue = { 0, "Waiting for replica workers to process their queues", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_to_reconnect_after_failed_binlog_dump_request { 0, "Waiting to reconnect after a failed binlog dump request", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_to_reconnect_after_failed_event_read { 0, "Waiting to reconnect after a failed source event read", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_to_reconnect_after_failed_registration_on_source { 0, "Waiting to reconnect after a failed registration on source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_worker_queue = { 0, "Waiting for Replica Worker queue", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_worker_to_free_events = { 0, "Waiting for Replica Workers to free pending events", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_worker_to_release_partition = { 0, "Waiting for Replica Worker to release partition", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_replica_waiting_workers_to_exit = { 0, "Waiting for workers to exit", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_apply_row_evt_write = { 0, "Applying batch of row changes (write)", PSI_FLAG_STAGE_PROGRESS, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_apply_row_evt_update = { 0, "Applying batch of row changes (update)", PSI_FLAG_STAGE_PROGRESS, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_apply_row_evt_delete = { 0, "Applying batch of row changes (delete)", PSI_FLAG_STAGE_PROGRESS, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_statistics = { 0, "statistics", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_sql_thd_waiting_until_delay = { 0, "Waiting until SOURCE_DELAY seconds after source executed event", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_system_lock = { 0, "System lock", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_update = { 0, "update", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_updating = { 0, "updating", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_updating_main_table = { 0, "updating main table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_updating_reference_tables = { 0, "updating reference tables", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_user_sleep = { 0, "User sleep", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_verifying_table = { 0, "verifying table", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_gtid_to_be_committed = { 0, "Waiting for GTID to be committed", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_handler_commit = { 0, "waiting for handler commit", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_source_to_send_event = { 0, "Waiting for source to send event", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_source_update = { 0, "Waiting for source update", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_relay_log_space = { 0, "Waiting for the replica SQL thread to free relay log space", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_replica_mutex_on_exit = { 0, "Waiting for replica mutex on exit", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_replica_thread_to_start = { 0, "Waiting for replica thread to start", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_table_flush = { 0, "Waiting for table flush", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_the_next_event_in_relay_log = { 0, "Waiting for the next event in relay log", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_the_replica_thread_to_advance_position = { 0, "Waiting for the replica SQL thread to advance position", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_to_finalize_termination = { 0, "Waiting to finalize termination", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_worker_waiting_for_its_turn_to_commit = { 0, "Waiting for preceding transaction to commit", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_worker_waiting_for_commit_parent = { 0, "Waiting for dependent transaction to commit", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_suspending = { 0, "Suspending", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_starting = { 0, "starting", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_no_channel_reference = { 0, "Waiting for no channel reference.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_hook_begin_trans = { 0, "Executing hook on transaction begin.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_binlog_transaction_compress = { 0, "Compressing transaction changes.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_binlog_transaction_decompress = { 0, "Decompressing transaction changes.", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_failover_fetching_source_member_details = { 0, "Fetching source member details from connected source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_failover_updating_source_member_details = { 0, "Updating fetched source member details on receiver", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_rpl_failover_wait_before_next_fetch = { 0, "Wait before trying to fetch next membership changes from source", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_communication_delegation = { 0, "Connection delegated to Group Replication", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_wait_on_commit_ticket = { 0, "Waiting for Binlog Group Commit ticket", 0, PSI_DOCUMENT_ME}
 
PSI_stage_info stage_waiting_for_disk_space
 
PSI_stage_infoall_server_stages []
 
PSI_socket_key key_socket_tcpip
 
PSI_socket_key key_socket_unix
 
PSI_socket_key key_socket_client_connection
 
static PSI_socket_info all_server_sockets []
 

Detailed Description

MySQL server daemon.

Macro Definition Documentation

◆ FILE_LINE_ARGS

#define FILE_LINE_ARGS

◆ FIX_LOG_VAR

#define FIX_LOG_VAR (   VAR,
  ALT 
)     if (!VAR || !*VAR) VAR = ALT;

◆ LOG_SUBSYSTEM_TAG

#define LOG_SUBSYSTEM_TAG   "Server"

◆ MYSQL_SERVER_SUFFIX_STR

#define MYSQL_SERVER_SUFFIX_STR   MYSQL_SERVER_SUFFIX_DEF

◆ mysqld_charset

#define mysqld_charset   &my_charset_latin1

◆ mysqld_default_locale_name

#define mysqld_default_locale_name   "en_US"

◆ NUMBER_OF_COMPONENTS

#define NUMBER_OF_COMPONENTS   1

Typedef Documentation

◆ loader_scheme_type_t

◆ loader_type_t

◆ psi_system_type_t

◆ runtime_error_type_t

◆ rwlock_type_t

◆ srv_weak_option_option

Function Documentation

◆ add_terminator()

void add_terminator ( vector< my_option > *  options)
static

◆ adjust_max_connections()

static void adjust_max_connections ( ulong  requested_open_files)
static

◆ adjust_open_files_limit()

static void adjust_open_files_limit ( ulong *  requested_open_files)
static

Adjust open_files_limit.

Computation is based on:

  • max_connections,
  • table_cache_size,
  • the platform max open file limit.

◆ adjust_related_options()

static void adjust_related_options ( ulong *  requested_open_files)
static

◆ adjust_table_cache_size()

static void adjust_table_cache_size ( ulong  requested_open_files)
static

◆ adjust_table_def_size()

static void adjust_table_def_size ( )
static

◆ c_name()

static const std::string c_name ( "mysql_server"  )
static

◆ calculate_mysql_home_from_my_progname()

static void calculate_mysql_home_from_my_progname ( )
static

◆ CanTypeFitValue()

template<typename T , typename U >
constexpr bool CanTypeFitValue ( const U  value)
constexpr

◆ charset_error_reporter()

static void charset_error_reporter ( loglevel  level,
uint  ecode,
va_list  args 
)
static

Character set and collation error reporter that prints to sql error log.

Parameters
levellog message level
ecodeError code of the error message.
argsva_list list of arguments for the message

This routine is used to print character set and collation warnings and errors inside an already running mysqld server, e.g. when a character set or collation is requested for the very first time and its initialization does not go well for some reasons.

◆ check_address_is_wildcard()

bool check_address_is_wildcard ( const char *  address_value,
size_t  address_length 
)

Check that an address value is a wildcard IP value, that is it has either the value 0.0.0.0 for IPv4 or the value ::1 in case IPv6, or has the specially treated symbol * as its value.

Parameters
address_valueAddress value to check
address_lengthAddress length
Returns
true in case the address value is a wildcard value, else false.

◆ check_admin_address_has_valid_value()

static bool check_admin_address_has_valid_value ( const char *  admin_bind_addr_str,
Bind_address_info admin_address_info 
)
static

Check acceptable value(s) of the parameter admin-address.

Parameters
admin_bind_addr_strValue of the parameter admin-address
[out]admin_address_infoList of addresses to listen and their corresponding network namespaces if set.
Returns
false on success, true on failure

◆ check_and_update_partial_revokes_sysvar()

bool check_and_update_partial_revokes_sysvar ( THD thd)

If there exists at least one restrictions on any user, then update global variables which track the partial_revokes.

Parameters
thdTHD handle
Returns
a bool indicating partial_revokes status of the server.
Return values
trueParital revokes exists; updated the global variables.
falsePartial revokes does not exist.

◆ check_bind_address_has_valid_value()

static bool check_bind_address_has_valid_value ( const char *  bind_address,
std::list< Bind_address_info > *  valid_bind_addresses 
)
static

Check acceptable value(s) of parameter bind-address.

Parameters
bind_addressValue of the parameter bind-address
[out]valid_bind_addressesList of addresses to listen and their corresponding network namespaces if set.
Returns
false on success, true on failure

◆ check_enough_stack_size()

static int check_enough_stack_size ( int  recurse_level)
static

This function is used to check for stack overrun for pathological cases of regular expressions and 'like' expressions.

The call to current_thd is quite expensive, so we try to avoid it for the normal cases. The size of each stack frame for the wildcmp() routines is ~128 bytes, so checking every recursive call is not necessary.

◆ check_secure_file_priv_path()

static bool check_secure_file_priv_path ( )
static

check_secure_file_priv_path : Checks path specified through –secure-file-priv and raises warning in following cases:

  1. If path is empty string or NULL and mysqld is not running with –initialize (bootstrap mode).
  2. If path can access data directory
  3. If path points to a directory which is accessible by all OS users (non-Windows build only)

It throws error in following cases:

  1. If path normalization fails
  2. If it can not get stats of the directory

Assumptions :

  1. Data directory path has been normalized
  2. opt_secure_file_priv has been normalized unless it is set to "NULL".
Returns
Status of validation
Return values
true: Validation is successful with/without warnings
false: Validation failed. Error is raised.

◆ check_user()

static PasswdValue check_user ( const char *  user)
static

◆ Clamp()

template<typename T , typename U >
T Clamp ( U  x)

◆ clean_up()

static void clean_up ( bool  print_message)
static

◆ clean_up_mutexes()

static void clean_up_mutexes ( void  )
static

◆ clean_up_mysqld_mutexes()

void clean_up_mysqld_mutexes ( )

◆ close_connections()

static void close_connections ( void  )
static

◆ component_infrastructure_deinit()

static bool component_infrastructure_deinit ( bool  print_message)
static

De-initializes Component infrastructure by de-initialization of the MySQL Server services (persistent dynamic loader) followed by de-initailization of the core Components infrostructure.

Returns
Status of performed operation
Return values
falsesuccess
truefailure

◆ component_infrastructure_init()

static bool component_infrastructure_init ( )
static

Initializes component infrastructure by bootstrapping core component subsystem.

Returns
Status of performed operation
Return values
falsesuccess
truefailure

◆ create_bind_address_info_from_string()

static bool create_bind_address_info_from_string ( const char *  begin_address_value,
const char *  end_address_value,
std::list< Bind_address_info > *  valid_bind_addresses 
)
static

Parse a value of address sub string with checking of address string format, extract address part and namespace part of the address value, and store their values into the argument valid_bind_addresses.

Returns
false on success, true on address format error

◆ create_native_table_for_pfs()

bool create_native_table_for_pfs ( const Plugin_table t)

◆ create_pid_file()

static bool create_pid_file ( )
static

Create file to store pid number.

◆ deinitialize_manifest_file_components()

static void deinitialize_manifest_file_components ( )
static

◆ deinitialize_minimal_chassis()

bool deinitialize_minimal_chassis ( mysql_service_registry_t registry)

◆ delete_pid_file()

static void delete_pid_file ( myf  flags)
static

Remove the process' pid file.

Parameters
flagsfile operation flags

◆ do_create_native_table_for_pfs()

bool do_create_native_table_for_pfs ( THD thd,
const Plugin_table t 
)

◆ do_drop_native_table_for_pfs()

static bool do_drop_native_table_for_pfs ( THD thd,
const char *  schema_name,
const char *  table_name 
)
static

◆ drop_native_table_for_pfs()

bool drop_native_table_for_pfs ( const char *  schema_name,
const char *  table_name 
)

◆ empty_signal_handler()

static void empty_signal_handler ( int  sig)
static

◆ end_ssl()

static void end_ssl ( )
static

◆ fix_paths()

static int fix_paths ( void  )
static

◆ flush_auto_options()

static int flush_auto_options ( const char *  fname)
static

Save all options which was auto-generated by server-self into the given file.

Parameters
fnameThe name of the file in which the auto-generated options will b e saved.
Returns
Return 0 or 1 if an error occurred.

◆ free_connection_acceptors()

static void free_connection_acceptors ( )
static

◆ generate_server_uuid()

static int generate_server_uuid ( )
static

Generate a UUID and save it into server_uuid variable.

Returns
Return 0 or 1 if an error occurred.

◆ get_icu_data_directory_in_build_dir()

static char * get_icu_data_directory_in_build_dir ( char *  to)
static

◆ get_icu_data_directory_in_install_dir()

static char * get_icu_data_directory_in_install_dir ( char *  to)
static

◆ get_metric_aborted_connects()

static void get_metric_aborted_connects ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_acl_cache_items_count()

static void get_metric_acl_cache_items_count ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_aggregated_integer()

static void get_metric_aggregated_integer ( void *  measurement_context,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_connection_errors_accept()

static void get_metric_connection_errors_accept ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_connection_errors_max_connection()

static void get_metric_connection_errors_max_connection ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_connection_errors_query_block()

static void get_metric_connection_errors_query_block ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_connection_errors_tcpwrap()

static void get_metric_connection_errors_tcpwrap ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_connections()

static void get_metric_connections ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_global_mem_counter()

static void get_metric_global_mem_counter ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ongoing_anonymous_transaction_count()

static void get_metric_ongoing_anonymous_transaction_count ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_open_table_definitions()

static void get_metric_open_table_definitions ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_open_tables()

static void get_metric_open_tables ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_prepared_stmt_count()

static void get_metric_prepared_stmt_count ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_queries()

static void get_metric_queries ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_replica_open_temp_tables()

static void get_metric_replica_open_temp_tables ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_simple_integer()

template<typename T >
static void get_metric_simple_integer ( void *  measurement_context,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_accept_renegotiates()

static void get_metric_ssl_accept_renegotiates ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_accepts()

static void get_metric_ssl_accepts ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_callback_cache_hits()

static void get_metric_ssl_callback_cache_hits ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_client_connects()

static void get_metric_ssl_client_connects ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_connect_renegotiates()

static void get_metric_ssl_connect_renegotiates ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_finished_accepts()

static void get_metric_ssl_finished_accepts ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_finished_connects()

static void get_metric_ssl_finished_connects ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_session_cache_hits()

static void get_metric_ssl_session_cache_hits ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_session_cache_misses()

static void get_metric_ssl_session_cache_misses ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_session_cache_overflows()

static void get_metric_ssl_session_cache_overflows ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_session_cache_size()

static void get_metric_ssl_session_cache_size ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_session_cache_timeouts()

static void get_metric_ssl_session_cache_timeouts ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_ssl_used_session_cache_entries()

static void get_metric_ssl_used_session_cache_entries ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_threads_cached()

static void get_metric_threads_cached ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_threads_connected()

static void get_metric_threads_connected ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_threads_created()

static void get_metric_threads_created ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_threads_running()

static void get_metric_threads_running ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_metric_uptime()

static void get_metric_uptime ( void *  ,
measurement_delivery_callback_t  delivery,
void *  delivery_context 
)
static

◆ get_options()

static int get_options ( int *  argc_ptr,
char ***  argv_ptr 
)
static

Get server options from the command line, and perform related server initializations.

Parameters
[in,out]argc_ptrcommand line options (count)
[in,out]argv_ptrcommand line options (values)
Returns
0 on success

◆ get_relative_path()

static const char * get_relative_path ( const char *  path)
static

◆ get_remaining_argc()

int * get_remaining_argc ( )

◆ get_remaining_argv()

char *** get_remaining_argv ( )

◆ get_server_state()

enum_server_operational_state get_server_state ( )

Returns the current state of the server : booting, operational or shutting down.

Returns
SERVER_BOOTING Server is not operational. It is starting. SERVER_OPERATING Server is fully initialized and operating. SERVER_SHUTTING_DOWN Server is shutting down.

◆ get_thd_status_var()

struct System_status_var * get_thd_status_var ( THD thd,
bool *  aggregated 
)

◆ gtid_server_cleanup()

void gtid_server_cleanup ( )

GTID cleanup destroys objects and reset their pointer.

Function is reentrant.

◆ gtid_server_init()

bool gtid_server_init ( )

GTID initialization.

Returns
true if allocation does not succeed false if OK

◆ handle_early_options()

static int handle_early_options ( )
static

Process command line options flagged as 'early'.

Some components needs to be initialized as early as possible, because the rest of the server initialization depends on them. Options that needs to be parsed early includes:

  • the performance schema, when compiled in,
  • options related to the help,
  • options related to the bootstrap The performance schema needs to be initialized as early as possible, before to-be-instrumented objects of the server are initialized.

◆ icu_data_directory_is_valid()

static bool icu_data_directory_is_valid ( const char *  directory_path)
static

◆ init_client_psi_keys()

void init_client_psi_keys ( void  )

◆ init_com_statement_info()

static void init_com_statement_info ( )
static

◆ init_common_variables()

int init_common_variables ( )

◆ init_icu_data_directory()

static void init_icu_data_directory ( )
static

◆ init_server_auto_options()

static int init_server_auto_options ( )
static

File 'auto.cnf' resides in the data directory to hold values of options that server evaluates itself and that needs to be durable to sustain the server restart.

There is only a section ['auto'] in the file. All these options are in the section. Only one option exists now, it is server_uuid. Note, the user may not supply any literal value to these auto-options, and only allowed to trigger (re)evaluation. For instance, 'server_uuid' value will be evaluated and stored if there is no corresponding line in the file. Because of the specifics of the auto-options, they need separate storage. Meanwhile, it is the 'auto.cnf' that has the same structure as 'my.cnf'.

Returns
Return 0 or 1 if an error occurred.

◆ init_server_components()

static int init_server_components ( )
static

◆ init_server_psi_keys()

static void init_server_psi_keys ( void  )
static

Initialise all the performance schema instrumentation points used by the server.

◆ init_sql_statement_info()

static void init_sql_statement_info ( )
static

Initialize the command names array.

Since we do not want to maintain a separate array, this is populated from data mined in com_status_vars, which already has one name for each command.

◆ init_sql_statement_names()

static void init_sql_statement_names ( )
static

◆ init_ssl()

static int init_ssl ( )
static

◆ init_ssl_communication()

static int init_ssl_communication ( )
static

◆ init_thread_environment()

static int init_thread_environment ( )
static

◆ initialize_manifest_file_components()

static bool initialize_manifest_file_components ( )
static

◆ initialize_minimal_chassis()

bool initialize_minimal_chassis ( mysql_service_registry_t **  registry)

◆ initialize_storage_engine()

static bool initialize_storage_engine ( const char *  se_name,
const char *  se_kind,
plugin_ref dest_plugin 
)
static

◆ is_rpl_global_filter_setting()

static bool is_rpl_global_filter_setting ( char *  argument)
static

Check if it is a global replication filter setting.

Parameters
argumentThe setting of startup option –replicate-*.
Return values
0OK
1Error

◆ is_secure_file_path()

bool is_secure_file_path ( const char *  path)

Test a file path to determine if the path is compatible with the secure file path restriction.

Parameters
pathnull terminated character string
Return values
trueThe path is secure
falseThe path isn't secure

◆ kill_mysql()

void kill_mysql ( void  )

◆ log_alive_threads_info()

void log_alive_threads_info ( Global_THD_manager thd_manager,
uint  n 
)

This function logs number of threads, and info about first "n" number of threads that are still alive after forcefully shutdown, used by close_connections()

◆ log_final_messages()

static void log_final_messages ( int  exit_code)
static

◆ my_init_signals()

void my_init_signals ( )

◆ my_message_sql()

void my_message_sql ( uint  error,
const char *  str,
myf  MyFlags 
)

All global error messages are sent here where the first one is stored for the client.

◆ my_openssl_free()

static void my_openssl_free ( void *ptr  FILE_LINE_ARGS)
static

◆ my_openssl_malloc()

static void * my_openssl_malloc ( size_t size  FILE_LINE_ARGS)
static

◆ my_openssl_realloc()

static void * my_openssl_realloc ( void *  ptr,
size_t size  FILE_LINE_ARGS 
)
static

◆ my_server_abort()

void my_server_abort ( )

This is a wrapper around abort() which ensures that abort() will be called exactly once, as calling it more than once might cause following problems: When original abort() is called there is a signal processing triggered, but only the first abort() causes the signal handler to be called, all other abort()s called by the other threads will cause immediate exit() call, which will also terminate the first abort() processing within the signal handler, aborting stacktrace printing, core writeout or any other processing.

◆ my_str_free_mysqld()

void my_str_free_mysqld ( void *  ptr)

◆ my_str_malloc_mysqld()

void * my_str_malloc_mysqld ( size_t  size)

◆ my_str_realloc_mysqld()

void * my_str_realloc_mysqld ( void *  ptr,
size_t  size 
)

◆ mysql_component_infrastructure_init()

static bool mysql_component_infrastructure_init ( )
static

Initializes MySQL Server component infrastructure part by initialize of dynamic loader persistence.

Returns
Status of performed operation
Return values
falsesuccess
truefailure

◆ mysql_getopt_value()

static void * mysql_getopt_value ( const char *  keyname,
size_t  key_length,
const struct my_option option,
int *  error 
)
static

Handle arguments for multiple key caches.

◆ mysql_init_variables()

static int mysql_init_variables ( )
static

Initialize MySQL global variables to default values.

Note
The reason to set a lot of global variables to zero is that on some exotic platforms global variables are not set to 0 when a program starts.

We don't need to set variables referred to in my_long_options as these are initialized by my_getopt.

◆ mysqld_exit()

static void mysqld_exit ( int  exit_code)
static

◆ mysqld_get_one_option()

bool mysqld_get_one_option ( int  optid,
const struct my_option opt,
char *  argument 
)

◆ mysqld_main()

int mysqld_main ( int  argc,
char **  argv 
)

◆ mysqld_partial_revokes()

bool mysqld_partial_revokes ( )

Get status partial_revokes on server.

Returns
a bool indicating partial_revokes status of the server.
Return values
trueParital revokes is ON
flasePartial revokes is OFF

◆ network_init()

static bool network_init ( void  )
static

◆ operator<()

static bool operator< ( const my_option a,
const my_option b 
)
static

Compares two options' names, treats - and _ the same.

◆ option_error_reporter()

static void option_error_reporter ( enum loglevel  level,
uint  ecode,
  ... 
)
static

◆ parse_address_string()

static bool parse_address_string ( const char *  begin_address_value,
const char *  end_address_value,
std::string *  address_value,
std::string *  network_namespace 
)
static

Take a string representing host or ip address followed by optional delimiter '/' and namespace name and put address part and namespace part into corresponding output parameters.

Parameters
begin_address_valuestart of a string containing an address value
end_address_valuepointer to an end of string containing an address value. Has the value nullptr in case address value not continue
[out]address_valueaddress value extracted from address string
[out]network_namespacenetwork namespace extracted from the address string value if any
Returns
false on success, true on address format error

◆ parse_filter_arg()

void parse_filter_arg ( char **  channel_name,
char **  filter_val,
char *  argument 
)

Extract channel name and filter value from argument.

Parameters
[out]channel_nameThe name of the channel.
[out]filter_valThe value of filter.
argumentThe setting of startup option –replicate-*.

◆ parse_replicate_rewrite_db()

static int parse_replicate_rewrite_db ( char **  key,
char **  val,
char *  argument 
)
static

Extract channel name and filter value from argument.

Parameters
[out]keyThe db is rewritten from.
[out]valThe db is rewritten to.
argumentThe value of filter.
Return values
0OK
1Error

◆ persisted_variables_refresh_keyring_support()

void persisted_variables_refresh_keyring_support ( )

◆ print_help()

static void print_help ( )
static

◆ print_server_version()

static void print_server_version ( void  )
static

◆ process_bootstrap()

static void process_bootstrap ( )
static

Execute the bootstrap thread, if required.

When mysqld is started with –initialize only, the bootstrap thread executes

  • compiled in statements.
  • create the non-DD based INFORMATION_SCHEMA. and the server exits.

When mysqld is started with –init-file only, the bootstrap thread executes SQL statements provided in the input text file, and the server continues and serves requests.

When mysqld is started with both –initialize and –init-file, the bootstrap thread:

  • executes compiled in statements,
  • executes SQL statements in the –init-file.
  • creates the non-DD based INFORMATION_SCHEMA. The server then exits.

Compiled in statements are executed in a privileged mode, with SYSTEM_THREAD_SERVER_INITIALIZE.

See also
handle_bootstrap_impl

◆ refresh_status()

void refresh_status ( )

Reset global and session status variables.

◆ register_server_metric_sources()

void register_server_metric_sources ( )

◆ REQUIRES_SERVICE_PLACEHOLDER() [1/2]

REQUIRES_SERVICE_PLACEHOLDER ( mysql_psi_system_v1  )

◆ REQUIRES_SERVICE_PLACEHOLDER() [2/2]

REQUIRES_SERVICE_PLACEHOLDER ( mysql_rwlock_v1  )

◆ reset_status_by_thd()

void reset_status_by_thd ( )

◆ rpl_make_log_name()

static const char * rpl_make_log_name ( PSI_memory_key  key,
const char *  opt,
const char *  def,
const char *  ext 
)
inlinestatic

Create a replication file name or base for file names.

Parameters
keyInstrumentation key used to track allocations
[in]optValue of option, or NULL
[in]defDefault value if option value is not set.
[in]extExtension to use for the path
Returns
Pointer to string containing the full file path, or NULL if it was not possible to create the path.

◆ s_name()

static const std::string s_name ( "mysql_option_tracker_option"  )

◆ server_component_deinit()

static void server_component_deinit ( )
static

This function is used to de-initialize the mysql_server component services.

◆ server_component_init()

static void server_component_init ( )
static

This function is used to initialize the mysql_server component services.

◆ server_components_init_wait()

static void server_components_init_wait ( )
static

Block and wait until server components have been initialized.

◆ server_components_initialized()

static void server_components_initialized ( )
static

Notify any waiters that the server components have been initialized.

Used by the signal handler thread and by Cluster.

See also
signal_hand

◆ set_effective_user()

static void set_effective_user ( const PasswdValue user_info_arg)
static

◆ set_mysqld_partial_revokes()

void set_mysqld_partial_revokes ( bool  value)

Set partial_revokes with a given value.

Parameters
valuetrue or false indicating the status of partial revokes turned ON/OFF on server.

◆ set_ports()

static void set_ports ( )
static

◆ set_remaining_args()

void set_remaining_args ( int  argc,
char **  argv 
)

◆ set_root()

static void set_root ( const char *  path)
static

Change root user if started with –chroot .

◆ set_server_shutting_down()

static bool set_server_shutting_down ( )
static

◆ set_server_version()

static void set_server_version ( void  )
static

◆ set_super_read_only_post_init()

static void set_super_read_only_post_init ( )
static

◆ set_user()

static void set_user ( const char *  user,
const PasswdValue user_info_arg 
)
static

◆ setup_error_log()

static void setup_error_log ( )
static

◆ setup_error_log_components()

static int setup_error_log_components ( )
static

Try to set the error logging pipeline from @global.log_error_services.

Try to read the previous run's error log and make it available in performance_schema.error_log. Flush the buffered error messages to performance schema and to configured services, and end error log buffering. On success, log_error_stage_current becomes LOG_ERROR_STAGE_COMPONENTS_AND_PFS.

Return values
0Success
1Log pipeline not set up as requested. Caller should abort.

◆ setup_fpu()

void setup_fpu ( )
inline

◆ show_aborted_connects()

static int show_aborted_connects ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_acl_cache_items_count()

static int show_acl_cache_items_count ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_connection_errors_accept()

static int show_connection_errors_accept ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_connection_errors_max_connection()

static int show_connection_errors_max_connection ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_connection_errors_query_block()

static int show_connection_errors_query_block ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_connection_errors_tcpwrap()

static int show_connection_errors_tcpwrap ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_deprecated_use_i_s_processlist_count()

static int show_deprecated_use_i_s_processlist_count ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_deprecated_use_i_s_processlist_last_timestamp()

static int show_deprecated_use_i_s_processlist_last_timestamp ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_flushstatustime()

static int show_flushstatustime ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_global_mem_counter()

static int show_global_mem_counter ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_max_used_connections_time()

static int show_max_used_connections_time ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_net_compression()

static int show_net_compression ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_net_compression_algorithm()

static int show_net_compression_algorithm ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_net_compression_level()

static int show_net_compression_level ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_num_thread_created()

static int show_num_thread_created ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_num_thread_running()

static int show_num_thread_running ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_ongoing_anonymous_gtid_violating_transaction_count()

static int show_ongoing_anonymous_gtid_violating_transaction_count ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_ongoing_anonymous_transaction_count()

static int show_ongoing_anonymous_transaction_count ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_ongoing_automatic_gtid_violating_transaction_count()

static int show_ongoing_automatic_gtid_violating_transaction_count ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_open_tables()

static int show_open_tables ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_prepared_stmt_count()

static int show_prepared_stmt_count ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_queries()

static int show_queries ( THD thd,
SHOW_VAR var,
char *   
)
static

◆ show_replica_open_temp_tables()

static int show_replica_open_temp_tables ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_replica_rows_last_search_algorithm_used()

static int show_replica_rows_last_search_algorithm_used ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_resource_group_support()

static int show_resource_group_support ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_ssl_get_cipher()

static int show_ssl_get_cipher ( THD thd,
SHOW_VAR var,
char *   
)
static

◆ show_ssl_get_cipher_list()

static int show_ssl_get_cipher_list ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_ssl_get_default_timeout()

static int show_ssl_get_default_timeout ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_ssl_get_tls_sni_servername()

static int show_ssl_get_tls_sni_servername ( THD thd,
SHOW_VAR var,
char *   
)
static

◆ show_ssl_get_verify_depth()

static int show_ssl_get_verify_depth ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_ssl_get_verify_mode()

static int show_ssl_get_verify_mode ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_ssl_get_version()

static int show_ssl_get_version ( THD thd,
SHOW_VAR var,
char *   
)
static

◆ show_ssl_session_reused()

static int show_ssl_session_reused ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_starttime()

static int show_starttime ( THD thd,
SHOW_VAR var,
char *  buff 
)
static

◆ show_table_definitions()

static int show_table_definitions ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_telemetry_metrics_support()

static int show_telemetry_metrics_support ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_telemetry_traces_support()

static int show_telemetry_traces_support ( THD ,
SHOW_VAR var,
char *  buf 
)
static

◆ show_thread_id_count()

static int show_thread_id_count ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ show_tls_library_version()

static int show_tls_library_version ( THD ,
SHOW_VAR var,
char *  buff 
)
static

◆ signal_hand()

void * signal_hand ( void *  arg)

This thread handles SIGTERM, SIGQUIT, SIGHUP, SIGUSR1 and SIGUSR2 signals.

< Rotate only the error log

< Flush the general log

< Flush the slow query log

◆ signal_restart_server()

bool signal_restart_server ( )

Signal the server thread for restart.

Returns
false if the thread has been successfully signalled for restart else true.

◆ sql_rnd_with_mutex()

ulong sql_rnd_with_mutex ( )

◆ start_signal_handler()

static void start_signal_handler ( )
static

◆ test_if_case_insensitive()

static int test_if_case_insensitive ( const char *  dir_name)
static

Check if file system used for databases is case insensitive.

Parameters
dir_nameDirectory to test
Return values
-1Don't know (Test failed)
0File system is case sensitive
1File system is case insensitive

◆ test_lc_time_sz()

static void test_lc_time_sz ( )
static

◆ thd_mem_cnt_alloc()

void thd_mem_cnt_alloc ( THD thd,
size_t  size,
const char *  key_name 
)

◆ thd_mem_cnt_free()

void thd_mem_cnt_free ( THD thd,
size_t  size 
)

◆ unireg_abort()

static void unireg_abort ( int  exit_code)
static

◆ unregister_server_metric_sources()

void unregister_server_metric_sources ( )

◆ usage()

static void usage ( void  )
static

Variable Documentation

◆ aborted_threads

ulong aborted_threads

◆ all_options

vector<my_option> all_options

◆ all_server_conds

PSI_cond_info all_server_conds[]
static

◆ all_server_files

PSI_file_info all_server_files[]
static

◆ all_server_mutexes

PSI_mutex_info all_server_mutexes[]
static

◆ all_server_rwlocks

PSI_rwlock_info all_server_rwlocks[]
static
Initial value:
=
{
{ &key_rwlock_LOCK_logger, "LOGGER::LOCK_logger", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_channel_map_lock, "channel_map_lock", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_channel_lock, "channel_lock", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_rpl_filter_lock, "rpl_filter_lock", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_channel_to_filter_lock, "channel_to_filter_lock", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_resource_group_mgr_map_lock, "Resource_group_mgr::m_map_rwlock", 0, 0, PSI_DOCUMENT_ME},
{ &key_rwlock_LOCK_server_shutting_down, "server_shutting_down", 0, 0, "This lock protects server shutting down flag."},
}
#define PSI_DOCUMENT_ME
Definition: component_common.h:29
#define PSI_FLAG_SINGLETON
Singleton flag.
Definition: component_common.h:35
static PSI_rwlock_key key_rwlock_LOCK_sys_init_replica
Definition: mysqld.cc:1120
static PSI_rwlock_key key_rwlock_LOCK_sys_init_connect
Definition: mysqld.cc:1119
PSI_rwlock_key key_rwlock_rpl_filter_lock
Definition: mysqld.cc:13523
PSI_rwlock_key key_rwlock_channel_to_filter_lock
Definition: mysqld.cc:13524
static PSI_rwlock_key key_rwlock_global_tsid_lock
Definition: mysqld.cc:1116
PSI_rwlock_key key_rwlock_Trans_delegate_lock
Definition: mysqld.cc:13526
PSI_rwlock_key key_rwlock_receiver_tsid_lock
Definition: mysqld.cc:13522
PSI_rwlock_key key_rwlock_channel_map_lock
Definition: mysqld.cc:13520
PSI_rwlock_key key_rwlock_Binlog_storage_delegate_lock
Definition: mysqld.cc:13528
PSI_rwlock_key key_rwlock_Binlog_relay_IO_delegate_lock
Definition: mysqld.cc:13530
PSI_rwlock_key key_rwlock_Server_state_delegate_lock
Definition: mysqld.cc:13527
PSI_rwlock_key key_rwlock_resource_group_mgr_map_lock
Definition: mysqld.cc:13531
PSI_rwlock_key key_rwlock_LOCK_logger
Definition: mysqld.cc:13519
PSI_rwlock_key key_rwlock_gtid_mode_lock
Definition: mysqld.cc:1117
PSI_rwlock_key key_rwlock_channel_lock
Definition: mysqld.cc:13521
PSI_rwlock_key key_rwlock_Binlog_transmit_delegate_lock
Definition: mysqld.cc:13529
static PSI_rwlock_key key_rwlock_LOCK_server_shutting_down
Definition: mysqld.cc:1155
static PSI_rwlock_key key_rwlock_LOCK_system_variables_hash
Definition: mysqld.cc:1118

◆ all_server_sockets

PSI_socket_info all_server_sockets[]
static
Initial value:
=
{
{ &key_socket_tcpip, "server_tcpip_socket", PSI_FLAG_SINGLETON, 0, PSI_DOCUMENT_ME},
{ &key_socket_unix, "server_unix_socket", PSI_FLAG_SINGLETON, 0, PSI_DOCUMENT_ME},
}
#define PSI_FLAG_USER
User flag.
Definition: psi_bits.h:103
PSI_socket_key key_socket_tcpip
Definition: mysqld.cc:13928
PSI_socket_key key_socket_unix
Definition: mysqld.cc:13929
PSI_socket_key key_socket_client_connection
Definition: mysqld.cc:13930

◆ all_server_stages

PSI_stage_info* all_server_stages[]

◆ all_server_threads

PSI_thread_info all_server_threads[]
static
Initial value:
=
{
{ &key_thread_one_connection, "one_connection", "connection",
{ &key_thread_signal_hand, "signal_handler", "sig_handler", PSI_FLAG_SINGLETON, 0, PSI_DOCUMENT_ME},
{ &key_thread_compress_gtid_table, "compress_gtid_table", "gtid_zip", PSI_FLAG_SINGLETON, 0, PSI_DOCUMENT_ME},
{ &key_thread_parser_service, "parser_service", "parser_srv", PSI_FLAG_SINGLETON, 0, PSI_DOCUMENT_ME},
{ &key_thread_handle_con_admin_sockets, "admin_interface", "con_admin", PSI_FLAG_USER, 0, PSI_DOCUMENT_ME},
}
#define PSI_FLAG_NO_SEQNUM
No sequence number flag.
Definition: psi_bits.h:136
static PSI_thread_key key_thread_signal_hand
Definition: mysqld.cc:1128
PSI_thread_key key_thread_compress_gtid_table
Definition: mysqld.cc:13638
PSI_thread_key key_thread_one_connection
Definition: mysqld.cc:13637
static PSI_thread_key key_thread_main
Definition: mysqld.cc:1129
PSI_thread_key key_thread_handle_con_admin_sockets
Definition: mysqld.cc:13640
PSI_thread_key key_thread_bootstrap
Definition: mysqld.cc:13635
PSI_thread_key key_thread_handle_manager
Definition: mysqld.cc:13636
PSI_thread_key key_thread_parser_service
Definition: mysqld.cc:13639

◆ argc_cached

int argc_cached

Stores the value of argc during server start up that contains the count of arguments specified by the user in the configuration files and command line.

The server refers the cached argument count during plugin and component installation.

◆ argv_alloc

MEM_ROOT argv_alloc {PSI_NOT_INSTRUMENTED, 512}
static

Memory for allocating command line arguments, after load_defaults().

◆ argv_cached

char** argv_cached

Stores the value of argv during server start up that contains the vector of arguments specified by the user in the configuration files and command line.

The server refers the cached argument vector during plugin and component installation.

◆ atomic_global_query_id

std::atomic<query_id_t> atomic_global_query_id {1}

◆ atomic_replica_open_temp_tables

std::atomic<int32> atomic_replica_open_temp_tables {0}

◆ back_log

ulong back_log

◆ binary_keyword

const char * binary_keyword = "BINARY"

◆ binlog_cache_disk_use

ulong binlog_cache_disk_use = 0

◆ binlog_cache_size

ulong binlog_cache_size = 0

◆ binlog_cache_use

ulong binlog_cache_use = 0

◆ binlog_checksum_options

ulong binlog_checksum_options

◆ binlog_error_action

ulong binlog_error_action

◆ binlog_error_action_list

const char* binlog_error_action_list[]
Initial value:
= {"IGNORE_ERROR", "ABORT_SERVER",
#define NullS
Definition of the null string (a null pointer of type char *), used in some of our string handling co...
Definition: nulls.h:33

◆ binlog_expire_logs_seconds

ulong binlog_expire_logs_seconds = 0

◆ binlog_expire_logs_seconds_supplied

bool binlog_expire_logs_seconds_supplied = false

◆ binlog_filter

Rpl_filter* binlog_filter

◆ binlog_format_names

const char* binlog_format_names[] = {"MIXED", "STATEMENT", "ROW", NullS}

◆ binlog_format_used

bool binlog_format_used = false
static

◆ binlog_gtid_simple_recovery

bool binlog_gtid_simple_recovery

◆ binlog_row_event_max_size

ulong binlog_row_event_max_size

◆ binlog_row_metadata

ulong binlog_row_metadata

◆ binlog_stmt_cache_disk_use

ulong binlog_stmt_cache_disk_use = 0

◆ binlog_stmt_cache_size

ulong binlog_stmt_cache_size = 0

◆ binlog_stmt_cache_use

ulong binlog_stmt_cache_use = 0

◆ character_set_filesystem

CHARSET_INFO* character_set_filesystem

◆ character_set_filesystem_name

const char* character_set_filesystem_name
static

◆ check_proxy_users

bool check_proxy_users = false

◆ clone_recovery_error

bool clone_recovery_error = false

True, if clone recovery has failed.

For managed server we restart server again with old database files.

◆ clone_startup

bool clone_startup = false

True, if restarted from a cloned database.

This information is needed by GR to set some configurations right after clone.

◆ COM_COMMON_DESCRIPTION

const char* COM_COMMON_DESCRIPTION
static
Initial value:
=
"Number of times corresponding command statement has been executed."

◆ com_metrics

PSI_metric_info_v1 com_metrics[]
static

◆ com_statement_info

PSI_statement_info com_statement_info[(uint) COM_END+1]

Statement instrumentation keys (com).

The last entry, at [COM_END], is for packet errors.

◆ com_status_vars

SHOW_VAR com_status_vars[]

◆ compiled_default_collation_name

char compiled_default_collation_name[] = MYSQL_DEFAULT_COLLATION_NAME
static

◆ component_urns

const char* component_urns[] = {"file://component_reference_cache"}

◆ COND_compress_gtid_table

mysql_cond_t COND_compress_gtid_table

◆ COND_server_started

mysql_cond_t COND_server_started

◆ COND_socket_listener_active

mysql_cond_t COND_socket_listener_active

◆ COND_start_signal_handler

mysql_cond_t COND_start_signal_handler

◆ connect_timeout

ulong connect_timeout

◆ connection_errors_internal

ulong connection_errors_internal = 0

Number of connection errors from internal server errors.

◆ connection_errors_peer_addr

ulong connection_errors_peer_addr = 0

Number of errors when reading the peer address.

◆ connection_events_loop_aborted_flag

std::atomic<int32> connection_events_loop_aborted_flag

◆ connection_metrics

PSI_metric_info_v1 connection_metrics[]
static

◆ core_meters

PSI_meter_info_v1 core_meters[]
static
Initial value:
= {
{"mysql.stats", "MySql core metrics", 10, 0, 0, core_metrics,
{"mysql.stats.com", "MySql command stats", 10, 0, 0, com_metrics,
{"mysql.stats.connection", "MySql connection stats", 10, 0, 0,
{"mysql.stats.handler", "MySql handler stats", 10, 0, 0, handler_metrics,
{"mysql.stats.ssl", "MySql TLS related stats", 10, 0, 0, ssl_metrics,
{"mysql.myisam", "MySql MyISAM storage engine stats", 10, 0, 0,
static PSI_metric_info_v1 myisam_metrics[]
Definition: mysqld.cc:6331
static PSI_metric_info_v1 handler_metrics[]
Definition: mysqld.cc:6226
static PSI_metric_info_v1 com_metrics[]
Definition: mysqld.cc:5186
static PSI_metric_info_v1 ssl_metrics[]
Definition: mysqld.cc:6375
static PSI_metric_info_v1 connection_metrics[]
Definition: mysqld.cc:6188
static PSI_metric_info_v1 core_metrics[]
Definition: mysqld.cc:5879
size_t size(const char *const c)
Definition: base64.h:46

◆ core_metrics

PSI_metric_info_v1 core_metrics[]
static

◆ current_pid

ulong current_pid

◆ decimal_zero

my_decimal decimal_zero

◆ default_binlog_index_name

char default_binlog_index_name[FN_REFLEN+index_ext_length]

◆ default_binlogfile_name

char default_binlogfile_name[FN_REFLEN]

◆ default_character_set_name

const char* default_character_set_name
static

◆ default_collation_name

const char* default_collation_name
static

◆ default_dbug_option

const char* default_dbug_option
static

◆ default_logfile_name

char default_logfile_name[FN_REFLEN]

◆ default_password_lifetime

uint default_password_lifetime = 0

◆ default_relaylog_index_name

char default_relaylog_index_name[FN_REFLEN+relay_ext_length+ index_ext_length]

◆ default_relaylogfile_name

char default_relaylogfile_name[FN_REFLEN+relay_ext_length]

◆ default_storage_engine

const char* default_storage_engine

◆ default_tmp_storage_engine

const char* default_tmp_storage_engine

◆ default_tz

Time_zone* default_tz

◆ default_tz_name

char* default_tz_name

◆ delay_key_write_options

ulong delay_key_write_options

◆ delayed_insert_errors

ulong delayed_insert_errors

◆ delayed_insert_limit

ulong delayed_insert_limit

◆ delayed_insert_threads

ulong delayed_insert_threads

◆ delayed_insert_timeout

ulong delayed_insert_timeout

◆ delayed_insert_writes

ulong delayed_insert_writes

◆ delayed_queue_size

ulong delayed_queue_size

◆ delayed_rows_in_use

ulong delayed_rows_in_use

◆ dynamic_plugins_are_initialized

bool dynamic_plugins_are_initialized = false

Flag indicating if dynamic plugins have been loaded.

Only to be accessed by main thread.

◆ eq_creator

Eq_creator eq_creator

◆ equal_creator

Equal_creator equal_creator

◆ error_service

◆ errorlog_filename_buff

char errorlog_filename_buff[FN_REFLEN]
static

◆ files_charset_info

CHARSET_INFO * files_charset_info

◆ first_keyword

const char* first_keyword = "first"

◆ flush_status_time

time_t flush_status_time

◆ flush_time

ulong flush_time

◆ g_deployed_components

Deployed_components* g_deployed_components = nullptr

This variable holds handle to the object that's responsible for loading/unloading components from manifest file.

◆ ge_creator

Ge_creator ge_creator

◆ glob_hostname

char glob_hostname[HOSTNAME_LENGTH+1]

◆ global_aggregated_stats

struct aggregated_stats global_aggregated_stats

◆ global_conn_mem_counter

ulonglong global_conn_mem_counter = 0

◆ global_conn_mem_limit

ulonglong global_conn_mem_limit = 0

◆ global_status_var

struct System_status_var global_status_var

◆ global_system_variables

struct System_variables global_system_variables

◆ global_tsid_lock

Checkable_rwlock* global_tsid_lock = nullptr

Protects Gtid_state. See comment above gtid_state for details.

◆ global_tsid_map

Tsid_map* global_tsid_map = nullptr

◆ gt_creator

Gt_creator gt_creator

◆ gtid_executed_compression_period

uint32 gtid_executed_compression_period = 0

◆ gtid_state

Gtid_state* gtid_state = nullptr

Global state of GTIDs.

◆ gtid_table_persistor

Gtid_table_persistor* gtid_table_persistor = nullptr

◆ ha_open_options

uint ha_open_options

◆ handler_metrics

PSI_metric_info_v1 handler_metrics[]
static

◆ have_compress

SHOW_COMP_OPTION have_compress

◆ have_dlopen

SHOW_COMP_OPTION have_dlopen

◆ have_geometry

SHOW_COMP_OPTION have_geometry

◆ have_profiling

SHOW_COMP_OPTION have_profiling

◆ have_query_cache

SHOW_COMP_OPTION have_query_cache

◆ have_rtree_keys

SHOW_COMP_OPTION have_rtree_keys

◆ have_statement_timeout

SHOW_COMP_OPTION have_statement_timeout = SHOW_OPTION_DISABLED

◆ have_symlink

SHOW_COMP_OPTION have_symlink

◆ heap_hton

handlerton* heap_hton

◆ host_cache_size

uint host_cache_size

The size of the host_cache.

◆ host_cache_size_specified

bool host_cache_size_specified = false

◆ in_left_expr_name

const char* in_left_expr_name = "<left expr>"

name of reference on left expression in rewritten IN subquery

◆ index_ext

const char* index_ext = ".index"

◆ index_ext_length

const int index_ext_length = 6

◆ innodb_hton

handlerton* innodb_hton

◆ key_BINLOG_COND_done

PSI_cond_key key_BINLOG_COND_done
static

◆ key_BINLOG_COND_flush_queue

PSI_cond_key key_BINLOG_COND_flush_queue
static

◆ key_BINLOG_COND_wait_for_group_turn

PSI_cond_key key_BINLOG_COND_wait_for_group_turn
static

◆ key_BINLOG_LOCK_after_commit

PSI_mutex_key key_BINLOG_LOCK_after_commit
static

◆ key_BINLOG_LOCK_after_commit_queue

PSI_mutex_key key_BINLOG_LOCK_after_commit_queue
static

◆ key_BINLOG_LOCK_binlog_end_pos

PSI_mutex_key key_BINLOG_LOCK_binlog_end_pos
static

◆ key_BINLOG_LOCK_commit

PSI_mutex_key key_BINLOG_LOCK_commit
static

◆ key_BINLOG_LOCK_commit_queue

PSI_mutex_key key_BINLOG_LOCK_commit_queue
static

◆ key_BINLOG_LOCK_done

PSI_mutex_key key_BINLOG_LOCK_done
static

◆ key_BINLOG_LOCK_flush_queue

PSI_mutex_key key_BINLOG_LOCK_flush_queue
static

◆ key_BINLOG_LOCK_index

PSI_mutex_key key_BINLOG_LOCK_index
static

◆ key_BINLOG_LOCK_log

PSI_mutex_key key_BINLOG_LOCK_log
static

◆ key_BINLOG_LOCK_log_info

PSI_mutex_key key_BINLOG_LOCK_log_info
static

◆ key_BINLOG_LOCK_sync

PSI_mutex_key key_BINLOG_LOCK_sync
static

◆ key_BINLOG_LOCK_sync_queue

PSI_mutex_key key_BINLOG_LOCK_sync_queue
static

◆ key_BINLOG_LOCK_wait_for_group_turn

PSI_mutex_key key_BINLOG_LOCK_wait_for_group_turn
static

◆ key_BINLOG_LOCK_xids

PSI_mutex_key key_BINLOG_LOCK_xids
static

◆ key_BINLOG_prep_xids_cond

PSI_cond_key key_BINLOG_prep_xids_cond
static

◆ key_BINLOG_update_cond

PSI_cond_key key_BINLOG_update_cond
static

◆ key_commit_order_manager_cond

PSI_cond_key key_commit_order_manager_cond

◆ key_commit_order_manager_mutex

PSI_mutex_key key_commit_order_manager_mutex

◆ key_COND_active

PSI_cond_key key_COND_active

◆ key_COND_cache_status_changed

PSI_cond_key key_COND_cache_status_changed

◆ key_COND_compress_gtid_table

PSI_cond_key key_COND_compress_gtid_table
static

◆ key_COND_delegate_connection_cond_var

PSI_cond_key key_COND_delegate_connection_cond_var

◆ key_COND_group_replication_connection_cond_var

PSI_cond_key key_COND_group_replication_connection_cond_var

◆ key_COND_manager

PSI_cond_key key_COND_manager
static

◆ key_cond_mta_gaq

PSI_cond_key key_cond_mta_gaq

◆ key_COND_pool

PSI_cond_key key_COND_pool

◆ key_COND_server_started

PSI_cond_key key_COND_server_started
static

◆ key_cond_slave_parallel_pend_jobs

PSI_cond_key key_cond_slave_parallel_pend_jobs

◆ key_cond_slave_parallel_worker

PSI_cond_key key_cond_slave_parallel_worker

◆ key_cond_slave_worker_hash

PSI_cond_key key_cond_slave_worker_hash

◆ key_COND_socket_listener_active

PSI_cond_key key_COND_socket_listener_active
static

◆ key_COND_start_signal_handler

PSI_cond_key key_COND_start_signal_handler
static

◆ key_COND_thr_lock

PSI_cond_key key_COND_thr_lock

◆ key_file_binlog

PSI_file_key key_file_binlog

◆ key_file_binlog_cache

PSI_file_key key_file_binlog_cache

◆ key_file_binlog_index

PSI_file_key key_file_binlog_index

◆ key_file_binlog_index_cache

PSI_file_key key_file_binlog_index_cache

◆ key_file_casetest

PSI_file_key key_file_casetest
static

◆ key_file_dbopt

PSI_file_key key_file_dbopt

◆ key_file_ERRMSG

PSI_file_key key_file_ERRMSG

◆ key_file_fileparser

PSI_file_key key_file_fileparser

◆ key_file_frm

PSI_file_key key_file_frm

◆ key_file_general_log

PSI_file_key key_file_general_log

◆ key_file_hash_join

PSI_file_key key_file_hash_join

◆ key_file_init

PSI_file_key key_file_init

◆ key_file_load

PSI_file_key key_file_load

◆ key_file_loadfile

PSI_file_key key_file_loadfile

◆ key_file_log_event_data

PSI_file_key key_file_log_event_data

◆ key_file_log_event_info

PSI_file_key key_file_log_event_info

◆ key_file_misc

PSI_file_key key_file_misc

◆ key_file_pid

PSI_file_key key_file_pid
static

◆ key_file_relaylog

PSI_file_key key_file_relaylog

◆ key_file_relaylog_cache

PSI_file_key key_file_relaylog_cache

◆ key_file_relaylog_index

PSI_file_key key_file_relaylog_index

◆ key_file_relaylog_index_cache

PSI_file_key key_file_relaylog_index_cache

◆ key_file_sdi

PSI_file_key key_file_sdi

◆ key_file_slow_log

PSI_file_key key_file_slow_log

◆ key_file_tclog

PSI_file_key key_file_tclog

◆ key_file_trg

PSI_file_key key_file_trg

◆ key_file_trn

PSI_file_key key_file_trn

◆ key_gtid_ensure_index_cond

PSI_cond_key key_gtid_ensure_index_cond

◆ key_gtid_ensure_index_mutex

PSI_mutex_key key_gtid_ensure_index_mutex

◆ key_hash_filo_lock

PSI_mutex_key key_hash_filo_lock

◆ key_item_func_sleep_cond

PSI_cond_key key_item_func_sleep_cond

◆ key_LOCK_admin_tls_ctx_options

PSI_mutex_key key_LOCK_admin_tls_ctx_options
static

◆ key_LOCK_authentication_policy

PSI_mutex_key key_LOCK_authentication_policy
static

◆ key_LOCK_collect_instance_log

PSI_mutex_key key_LOCK_collect_instance_log
static

◆ key_LOCK_compress_gtid_table

PSI_mutex_key key_LOCK_compress_gtid_table
static

◆ key_LOCK_cost_const

PSI_mutex_key key_LOCK_cost_const

◆ key_LOCK_crypt

PSI_mutex_key key_LOCK_crypt
static

◆ key_LOCK_current_cond

PSI_mutex_key key_LOCK_current_cond

◆ key_LOCK_default_password_lifetime

PSI_mutex_key key_LOCK_default_password_lifetime
static

◆ key_LOCK_delegate_connection_mutex

PSI_mutex_key key_LOCK_delegate_connection_mutex

◆ key_LOCK_error_log

PSI_mutex_key key_LOCK_error_log

◆ key_LOCK_error_messages

PSI_mutex_key key_LOCK_error_messages
static

◆ key_LOCK_global_conn_mem_limit

PSI_mutex_key key_LOCK_global_conn_mem_limit
static

◆ key_LOCK_global_system_variables

PSI_mutex_key key_LOCK_global_system_variables
static

◆ key_LOCK_group_replication_connection_mutex

PSI_mutex_key key_LOCK_group_replication_connection_mutex

◆ key_LOCK_keyring_operations

PSI_mutex_key key_LOCK_keyring_operations
static

◆ key_LOCK_log_throttle_qni

PSI_mutex_key key_LOCK_log_throttle_qni
static

◆ key_LOCK_manager

PSI_mutex_key key_LOCK_manager
static

◆ key_LOCK_mandatory_roles

PSI_mutex_key key_LOCK_mandatory_roles
static

◆ key_LOCK_partial_revokes

PSI_mutex_key key_LOCK_partial_revokes
static

◆ key_LOCK_password_history

PSI_mutex_key key_LOCK_password_history
static

◆ key_LOCK_password_reuse_interval

PSI_mutex_key key_LOCK_password_reuse_interval
static

◆ key_LOCK_prepared_stmt_count

PSI_mutex_key key_LOCK_prepared_stmt_count
static

◆ key_LOCK_query_plan

PSI_mutex_key key_LOCK_query_plan

◆ key_LOCK_replica_list

PSI_mutex_key key_LOCK_replica_list
static

◆ key_LOCK_replica_net_timeout

PSI_mutex_key key_LOCK_replica_net_timeout
static

◆ key_LOCK_replica_trans_dep_tracker

PSI_mutex_key key_LOCK_replica_trans_dep_tracker
static

◆ key_LOCK_reset_gtid_table

PSI_mutex_key key_LOCK_reset_gtid_table
static

◆ key_LOCK_rotate_binlog_master_key

PSI_mutex_key key_LOCK_rotate_binlog_master_key
static

◆ key_LOCK_server_started

PSI_mutex_key key_LOCK_server_started
static

◆ key_LOCK_socket_listener_active

PSI_mutex_key key_LOCK_socket_listener_active
static

◆ key_LOCK_sql_rand

PSI_mutex_key key_LOCK_sql_rand
static

◆ key_LOCK_sql_replica_skip_counter

PSI_mutex_key key_LOCK_sql_replica_skip_counter
static

◆ key_LOCK_start_signal_handler

PSI_mutex_key key_LOCK_start_signal_handler
static

◆ key_LOCK_status

PSI_mutex_key key_LOCK_status
static

◆ key_LOCK_tc

PSI_mutex_key key_LOCK_tc

◆ key_LOCK_thd_data

PSI_mutex_key key_LOCK_thd_data

◆ key_LOCK_thd_protocol

PSI_mutex_key key_LOCK_thd_protocol

◆ key_LOCK_thd_query

PSI_mutex_key key_LOCK_thd_query

◆ key_LOCK_thd_security_ctx

PSI_mutex_key key_LOCK_thd_security_ctx

◆ key_LOCK_thd_sysvar

PSI_mutex_key key_LOCK_thd_sysvar

◆ key_LOCK_tls_ctx_options

PSI_mutex_key key_LOCK_tls_ctx_options
static

◆ key_LOCK_user_conn

PSI_mutex_key key_LOCK_user_conn
static

◆ key_LOCK_uuid_generator

PSI_mutex_key key_LOCK_uuid_generator
static

◆ key_LOG_LOCK_log

PSI_mutex_key key_LOG_LOCK_log

◆ key_memory_openssl

PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED
static

◆ key_monitor_info_run_cond

PSI_cond_key key_monitor_info_run_cond

◆ key_monitor_info_run_lock

PSI_mutex_key key_monitor_info_run_lock

◆ key_mta_gaq_LOCK

PSI_mutex_key key_mta_gaq_LOCK

◆ key_mta_temp_table_LOCK

PSI_mutex_key key_mta_temp_table_LOCK

◆ key_mutex_replica_reporting_capability_err_lock

PSI_mutex_key key_mutex_replica_reporting_capability_err_lock

◆ key_mutex_replica_worker_hash

PSI_mutex_key key_mutex_replica_worker_hash

◆ key_mutex_slave_parallel_pend_jobs

PSI_mutex_key key_mutex_slave_parallel_pend_jobs

◆ key_mutex_slave_parallel_worker

PSI_mutex_key key_mutex_slave_parallel_worker

◆ key_mutex_slave_parallel_worker_count

PSI_mutex_key key_mutex_slave_parallel_worker_count

◆ key_object_cache_mutex

PSI_mutex_key key_object_cache_mutex

◆ key_object_loading_cond

PSI_cond_key key_object_loading_cond

◆ key_PAGE_cond

PSI_cond_key key_PAGE_cond

◆ key_relay_log_info_data_cond

PSI_cond_key key_relay_log_info_data_cond

◆ key_relay_log_info_data_lock

PSI_mutex_key key_relay_log_info_data_lock

◆ key_relay_log_info_log_space_cond

PSI_cond_key key_relay_log_info_log_space_cond

◆ key_relay_log_info_log_space_lock

PSI_mutex_key key_relay_log_info_log_space_lock

◆ key_relay_log_info_run_lock

PSI_mutex_key key_relay_log_info_run_lock

◆ key_relay_log_info_sleep_cond

PSI_cond_key key_relay_log_info_sleep_cond

◆ key_relay_log_info_sleep_lock

PSI_mutex_key key_relay_log_info_sleep_lock

◆ key_relay_log_info_start_cond

PSI_cond_key key_relay_log_info_start_cond

◆ key_relay_log_info_stop_cond

PSI_cond_key key_relay_log_info_stop_cond

◆ key_relay_log_info_thd_lock

PSI_mutex_key key_relay_log_info_thd_lock

◆ key_RELAYLOG_LOCK_commit

PSI_mutex_key key_RELAYLOG_LOCK_commit

◆ key_RELAYLOG_LOCK_index

PSI_mutex_key key_RELAYLOG_LOCK_index

◆ key_RELAYLOG_LOCK_log

PSI_mutex_key key_RELAYLOG_LOCK_log

◆ key_RELAYLOG_LOCK_log_end_pos

PSI_mutex_key key_RELAYLOG_LOCK_log_end_pos

◆ key_RELAYLOG_LOCK_sync

PSI_mutex_key key_RELAYLOG_LOCK_sync

◆ key_RELAYLOG_LOCK_xids

PSI_mutex_key key_RELAYLOG_LOCK_xids

◆ key_RELAYLOG_update_cond

PSI_cond_key key_RELAYLOG_update_cond

◆ key_rwlock_Binlog_relay_IO_delegate_lock

PSI_rwlock_key key_rwlock_Binlog_relay_IO_delegate_lock

◆ key_rwlock_Binlog_storage_delegate_lock

PSI_rwlock_key key_rwlock_Binlog_storage_delegate_lock

◆ key_rwlock_Binlog_transmit_delegate_lock

PSI_rwlock_key key_rwlock_Binlog_transmit_delegate_lock

◆ key_rwlock_channel_lock

PSI_rwlock_key key_rwlock_channel_lock

◆ key_rwlock_channel_map_lock

PSI_rwlock_key key_rwlock_channel_map_lock

◆ key_rwlock_channel_to_filter_lock

PSI_rwlock_key key_rwlock_channel_to_filter_lock

◆ key_rwlock_global_tsid_lock

PSI_rwlock_key key_rwlock_global_tsid_lock
static

◆ key_rwlock_gtid_mode_lock

PSI_rwlock_key key_rwlock_gtid_mode_lock

◆ key_rwlock_LOCK_logger

PSI_rwlock_key key_rwlock_LOCK_logger

◆ key_rwlock_LOCK_server_shutting_down

PSI_rwlock_key key_rwlock_LOCK_server_shutting_down
static

◆ key_rwlock_LOCK_sys_init_connect

PSI_rwlock_key key_rwlock_LOCK_sys_init_connect
static

◆ key_rwlock_LOCK_sys_init_replica

PSI_rwlock_key key_rwlock_LOCK_sys_init_replica
static

◆ key_rwlock_LOCK_system_variables_hash

PSI_rwlock_key key_rwlock_LOCK_system_variables_hash
static

◆ key_rwlock_receiver_tsid_lock

PSI_rwlock_key key_rwlock_receiver_tsid_lock

◆ key_rwlock_resource_group_mgr_map_lock

PSI_rwlock_key key_rwlock_resource_group_mgr_map_lock

◆ key_rwlock_rpl_filter_lock

PSI_rwlock_key key_rwlock_rpl_filter_lock

◆ key_rwlock_Server_state_delegate_lock

PSI_rwlock_key key_rwlock_Server_state_delegate_lock

◆ key_rwlock_Trans_delegate_lock

PSI_rwlock_key key_rwlock_Trans_delegate_lock

◆ key_select_to_file

PSI_file_key key_select_to_file

◆ key_socket_client_connection

PSI_socket_key key_socket_client_connection

◆ key_socket_tcpip

PSI_socket_key key_socket_tcpip

◆ key_socket_unix

PSI_socket_key key_socket_unix

◆ key_source_info_data_cond

PSI_cond_key key_source_info_data_cond

◆ key_source_info_data_lock

PSI_mutex_key key_source_info_data_lock

◆ key_source_info_rotate_cond

PSI_cond_key key_source_info_rotate_cond

◆ key_source_info_rotate_lock

PSI_mutex_key key_source_info_rotate_lock

◆ key_source_info_run_lock

PSI_mutex_key key_source_info_run_lock

◆ key_source_info_sleep_cond

PSI_cond_key key_source_info_sleep_cond

◆ key_source_info_sleep_lock

PSI_mutex_key key_source_info_sleep_lock

◆ key_source_info_start_cond

PSI_cond_key key_source_info_start_cond

◆ key_source_info_stop_cond

PSI_cond_key key_source_info_stop_cond

◆ key_source_info_thd_lock

PSI_mutex_key key_source_info_thd_lock

◆ key_structure_guard_mutex

PSI_mutex_key key_structure_guard_mutex

◆ key_TABLE_SHARE_LOCK_ha_data

PSI_mutex_key key_TABLE_SHARE_LOCK_ha_data

◆ key_thd_timer_mutex

PSI_mutex_key key_thd_timer_mutex

◆ key_thread_bootstrap

PSI_thread_key key_thread_bootstrap

◆ key_thread_compress_gtid_table

PSI_thread_key key_thread_compress_gtid_table

◆ key_thread_handle_con_admin_sockets

PSI_thread_key key_thread_handle_con_admin_sockets

◆ key_thread_handle_manager

PSI_thread_key key_thread_handle_manager

◆ key_thread_main

PSI_thread_key key_thread_main
static

◆ key_thread_one_connection

PSI_thread_key key_thread_one_connection

◆ key_thread_parser_service

PSI_thread_key key_thread_parser_service

◆ key_thread_signal_hand

PSI_thread_key key_thread_signal_hand
static

◆ last_mixed_non_transactional_engine_warning

std::atomic<time_t> last_mixed_non_transactional_engine_warning = 0

Stores the last time the warning for non-composable engine is emitted.

◆ lc_messages

const char* lc_messages
static

◆ lc_messages_dir

char lc_messages_dir[FN_REFLEN]

◆ lc_messages_dir_ptr

char* lc_messages_dir_ptr

◆ lc_time_names_name

const char* lc_time_names_name
static

◆ le_creator

Le_creator le_creator

◆ listen_admin_interface_in_separate_thread

bool listen_admin_interface_in_separate_thread

◆ load_default_groups

const char* load_default_groups[]
Initial value:
= {
"mysql_cluster",
"mysqld", "server", MYSQL_BASE_VERSION, nullptr, nullptr}
#define MYSQL_BASE_VERSION
Definition: mysql_version.h:13

◆ LOCK_admin_tls_ctx_options

mysql_mutex_t LOCK_admin_tls_ctx_options

◆ LOCK_authentication_policy

mysql_mutex_t LOCK_authentication_policy

◆ LOCK_collect_instance_log

mysql_mutex_t LOCK_collect_instance_log

◆ LOCK_compress_gtid_table

mysql_mutex_t LOCK_compress_gtid_table

◆ LOCK_crypt

mysql_mutex_t LOCK_crypt

◆ LOCK_default_password_lifetime

mysql_mutex_t LOCK_default_password_lifetime

◆ LOCK_error_messages

mysql_mutex_t LOCK_error_messages

◆ LOCK_global_conn_mem_limit

mysql_mutex_t LOCK_global_conn_mem_limit

◆ LOCK_global_system_variables

mysql_mutex_t LOCK_global_system_variables

◆ LOCK_keyring_operations

mysql_mutex_t LOCK_keyring_operations

◆ LOCK_log_throttle_qni

mysql_mutex_t LOCK_log_throttle_qni

◆ LOCK_mandatory_roles

mysql_mutex_t LOCK_mandatory_roles

◆ LOCK_partial_revokes

mysql_mutex_t LOCK_partial_revokes

◆ LOCK_password_history

mysql_mutex_t LOCK_password_history

◆ LOCK_password_reuse_interval

mysql_mutex_t LOCK_password_reuse_interval

◆ LOCK_prepared_stmt_count

mysql_mutex_t LOCK_prepared_stmt_count

The below lock protects access to two global server variables: max_prepared_stmt_count and prepared_stmt_count.

These variables set the limit and hold the current total number of prepared statements in the server, respectively. As PREPARE/DEALLOCATE rate in a loaded server may be fairly high, we need a dedicated lock.

◆ LOCK_replica_list

mysql_mutex_t LOCK_replica_list

Protects slave_list in rpl_source.cc; the list of currently running dump threads with metadata for the replica.

◆ LOCK_replica_net_timeout

mysql_mutex_t LOCK_replica_net_timeout

◆ LOCK_replica_trans_dep_tracker

mysql_mutex_t LOCK_replica_trans_dep_tracker

◆ LOCK_reset_gtid_table

mysql_mutex_t LOCK_reset_gtid_table

◆ LOCK_rotate_binlog_master_key

mysql_mutex_t LOCK_rotate_binlog_master_key

◆ LOCK_server_shutting_down

mysql_rwlock_t LOCK_server_shutting_down

◆ LOCK_server_started

mysql_mutex_t LOCK_server_started

◆ LOCK_socket_listener_active

mysql_mutex_t LOCK_socket_listener_active

◆ LOCK_sql_rand

mysql_mutex_t LOCK_sql_rand

◆ LOCK_sql_replica_skip_counter

mysql_mutex_t LOCK_sql_replica_skip_counter

◆ LOCK_start_signal_handler

mysql_mutex_t LOCK_start_signal_handler

◆ LOCK_status

mysql_mutex_t LOCK_status

◆ LOCK_sys_init_connect

mysql_rwlock_t LOCK_sys_init_connect

◆ LOCK_sys_init_replica

mysql_rwlock_t LOCK_sys_init_replica

◆ LOCK_system_variables_hash

mysql_rwlock_t LOCK_system_variables_hash

◆ LOCK_tls_ctx_options

mysql_mutex_t LOCK_tls_ctx_options

◆ LOCK_user_conn

mysql_mutex_t LOCK_user_conn

◆ LOCK_uuid_generator

mysql_mutex_t LOCK_uuid_generator

◆ locked_account_connection_count

ulong locked_account_connection_count = 0

◆ locked_in_memory

bool locked_in_memory

◆ log_10

const double log_10[]
Initial value:
= {
1e000, 1e001, 1e002, 1e003, 1e004, 1e005, 1e006, 1e007, 1e008, 1e009, 1e010,
1e011, 1e012, 1e013, 1e014, 1e015, 1e016, 1e017, 1e018, 1e019, 1e020, 1e021,
1e022, 1e023, 1e024, 1e025, 1e026, 1e027, 1e028, 1e029, 1e030, 1e031, 1e032,
1e033, 1e034, 1e035, 1e036, 1e037, 1e038, 1e039, 1e040, 1e041, 1e042, 1e043,
1e044, 1e045, 1e046, 1e047, 1e048, 1e049, 1e050, 1e051, 1e052, 1e053, 1e054,
1e055, 1e056, 1e057, 1e058, 1e059, 1e060, 1e061, 1e062, 1e063, 1e064, 1e065,
1e066, 1e067, 1e068, 1e069, 1e070, 1e071, 1e072, 1e073, 1e074, 1e075, 1e076,
1e077, 1e078, 1e079, 1e080, 1e081, 1e082, 1e083, 1e084, 1e085, 1e086, 1e087,
1e088, 1e089, 1e090, 1e091, 1e092, 1e093, 1e094, 1e095, 1e096, 1e097, 1e098,
1e099, 1e100, 1e101, 1e102, 1e103, 1e104, 1e105, 1e106, 1e107, 1e108, 1e109,
1e110, 1e111, 1e112, 1e113, 1e114, 1e115, 1e116, 1e117, 1e118, 1e119, 1e120,
1e121, 1e122, 1e123, 1e124, 1e125, 1e126, 1e127, 1e128, 1e129, 1e130, 1e131,
1e132, 1e133, 1e134, 1e135, 1e136, 1e137, 1e138, 1e139, 1e140, 1e141, 1e142,
1e143, 1e144, 1e145, 1e146, 1e147, 1e148, 1e149, 1e150, 1e151, 1e152, 1e153,
1e154, 1e155, 1e156, 1e157, 1e158, 1e159, 1e160, 1e161, 1e162, 1e163, 1e164,
1e165, 1e166, 1e167, 1e168, 1e169, 1e170, 1e171, 1e172, 1e173, 1e174, 1e175,
1e176, 1e177, 1e178, 1e179, 1e180, 1e181, 1e182, 1e183, 1e184, 1e185, 1e186,
1e187, 1e188, 1e189, 1e190, 1e191, 1e192, 1e193, 1e194, 1e195, 1e196, 1e197,
1e198, 1e199, 1e200, 1e201, 1e202, 1e203, 1e204, 1e205, 1e206, 1e207, 1e208,
1e209, 1e210, 1e211, 1e212, 1e213, 1e214, 1e215, 1e216, 1e217, 1e218, 1e219,
1e220, 1e221, 1e222, 1e223, 1e224, 1e225, 1e226, 1e227, 1e228, 1e229, 1e230,
1e231, 1e232, 1e233, 1e234, 1e235, 1e236, 1e237, 1e238, 1e239, 1e240, 1e241,
1e242, 1e243, 1e244, 1e245, 1e246, 1e247, 1e248, 1e249, 1e250, 1e251, 1e252,
1e253, 1e254, 1e255, 1e256, 1e257, 1e258, 1e259, 1e260, 1e261, 1e262, 1e263,
1e264, 1e265, 1e266, 1e267, 1e268, 1e269, 1e270, 1e271, 1e272, 1e273, 1e274,
1e275, 1e276, 1e277, 1e278, 1e279, 1e280, 1e281, 1e282, 1e283, 1e284, 1e285,
1e286, 1e287, 1e288, 1e289, 1e290, 1e291, 1e292, 1e293, 1e294, 1e295, 1e296,
1e297, 1e298, 1e299, 1e300, 1e301, 1e302, 1e303, 1e304, 1e305, 1e306, 1e307,
1e308}

◆ log_bin_supplied

bool log_bin_supplied = false

◆ log_error_dest

const char* log_error_dest

◆ log_error_verbosity

ulong log_error_verbosity = 3

◆ log_output_options

ulonglong log_output_options

◆ log_replica_updates_supplied

bool log_replica_updates_supplied = false

◆ logname_path

char logname_path[FN_REFLEN]

◆ lower_case_file_system

bool lower_case_file_system = false

◆ lower_case_table_names

uint lower_case_table_names

◆ lower_case_table_names_used

bool lower_case_table_names_used = false
static

◆ lt_creator

Lt_creator lt_creator

◆ main_thread_id

my_thread_t main_thread_id
static

◆ max_binlog_cache_size

ulonglong max_binlog_cache_size = 0

◆ max_binlog_size

ulong max_binlog_size

◆ max_binlog_stmt_cache_size

ulonglong max_binlog_stmt_cache_size = 0

◆ max_connect_errors

ulong max_connect_errors

◆ max_connections

ulong max_connections

◆ max_prepared_stmt_count

ulong max_prepared_stmt_count

Limit of the total number of prepared statements in the server.

Is necessary to protect the server against out-of-memory attacks.

◆ max_relay_log_size

ulong max_relay_log_size

◆ max_system_variables

struct System_variables max_system_variables

◆ migrate_connect_options

bool migrate_connect_options = false

Variable to check if connection related options are set as part of keyring migration.

◆ mqh_used

volatile bool mqh_used = false

◆ mts_parallel_option

ulong mts_parallel_option

◆ my_admin_bind_addr_str

char* my_admin_bind_addr_str

◆ my_bind_addr_str

char* my_bind_addr_str

◆ my_default_lc_messages

MY_LOCALE* my_default_lc_messages

◆ my_default_lc_time_names

MY_LOCALE* my_default_lc_time_names

◆ my_localhost

const char* my_localhost = "localhost"

◆ my_long_early_options

struct my_option my_long_early_options[]

◆ my_long_options

struct my_option my_long_options[]

System variables are automatically command-line options (few exceptions are documented in sys_var.h), so don't need to be listed here.

◆ my_share_dir

const char* my_share_dir[FN_REFLEN]

◆ myisam_hton

handlerton* myisam_hton

◆ myisam_metrics

PSI_metric_info_v1 myisam_metrics[]
static

◆ mysql_charsets_dir

char mysql_charsets_dir[FN_REFLEN]

◆ mysql_data_home

char* mysql_data_home = const_cast<char *>(".")

◆ mysql_data_home_len

size_t mysql_data_home_len = 1

◆ mysql_home

char mysql_home[FN_REFLEN]

◆ mysql_home_ptr

char* mysql_home_ptr

◆ mysql_real_data_home

char mysql_real_data_home[FN_REFLEN]

◆ mysql_real_data_home_ptr

const char* mysql_real_data_home_ptr = mysql_real_data_home

◆ mysql_tmpdir_list

MY_TMPDIR mysql_tmpdir_list

◆ mysql_unpacked_real_data_home

char mysql_unpacked_real_data_home[FN_REFLEN]

◆ mysql_unpacked_real_data_home_len

size_t mysql_unpacked_real_data_home_len

◆ mysqld_admin_port

uint mysqld_admin_port

◆ mysqld_chroot

char * mysqld_chroot
static

◆ mysqld_port

uint mysqld_port

◆ mysqld_port_timeout

uint mysqld_port_timeout

◆ mysqld_process_must_end_at_startup

bool mysqld_process_must_end_at_startup = false
static

Set to true to signal at startup if the process must die.

Needed because kill_mysql() will not do anything before the server is fully initialized. Thus it now just sets this flag to on and exits. And then mysqld_main() will check if the flag is on at the right place and exit the process if it is.

◆ mysqld_server_started

bool mysqld_server_started = false

◆ mysqld_signal_mask

sigset_t mysqld_signal_mask

◆ mysqld_socket_acceptor

Connection_acceptor<Mysqld_socket_listener>* mysqld_socket_acceptor
static
Initial value:
=
nullptr

◆ mysqld_unix_port

const char* mysqld_unix_port

◆ mysqld_user

char* mysqld_user
static

◆ national_charset_info

CHARSET_INFO* national_charset_info

◆ ne_creator

Ne_creator ne_creator

◆ offline_mode

std::atomic<bool> offline_mode

◆ open_files_limit

ulong open_files_limit

◆ opt_allow_suspicious_udfs

bool opt_allow_suspicious_udfs

◆ opt_always_activate_granted_roles

bool opt_always_activate_granted_roles = false

◆ opt_authentication_policy

char* opt_authentication_policy

◆ opt_autocommit

bool opt_autocommit
static

for –autocommit command-line option

◆ opt_bin_log

bool opt_bin_log

◆ opt_bin_logname

char * opt_bin_logname

◆ opt_binlog_expire_logs_auto_purge

bool opt_binlog_expire_logs_auto_purge {true}

◆ opt_binlog_group_commit_sync_delay

long opt_binlog_group_commit_sync_delay = 0

◆ opt_binlog_group_commit_sync_no_delay_count

ulong opt_binlog_group_commit_sync_no_delay_count = 0

◆ opt_binlog_max_flush_queue_time

int32 opt_binlog_max_flush_queue_time = 0

◆ opt_console

bool opt_console = false
static

◆ opt_daemonize

bool opt_daemonize = false
static

◆ opt_debugging

bool opt_debugging = false

◆ opt_disable_networking

bool opt_disable_networking = false

◆ opt_disabled_storage_engines

char* opt_disabled_storage_engines

◆ opt_enable_named_pipe

bool opt_enable_named_pipe = false

◆ opt_endinfo

bool opt_endinfo
static

◆ opt_external_locking

bool opt_external_locking = false
static

◆ opt_general_log

bool opt_general_log

◆ opt_general_log_raw

bool opt_general_log_raw

◆ opt_general_logname

char* opt_general_logname

◆ opt_help

bool opt_help = false

◆ opt_init_connect

LEX_STRING opt_init_connect

◆ opt_init_file

char * opt_init_file

◆ opt_init_replica

LEX_STRING opt_init_replica

◆ opt_initialize

bool opt_initialize = false

◆ opt_keyring_migration_destination

char* opt_keyring_migration_destination = nullptr

◆ opt_keyring_migration_from_component

bool opt_keyring_migration_from_component = false

◆ opt_keyring_migration_host

char* opt_keyring_migration_host = nullptr

◆ opt_keyring_migration_password

char* opt_keyring_migration_password = nullptr

◆ opt_keyring_migration_port

ulong opt_keyring_migration_port = 0

◆ opt_keyring_migration_socket

char* opt_keyring_migration_socket = nullptr

◆ opt_keyring_migration_source

char* opt_keyring_migration_source = nullptr

◆ opt_keyring_migration_to_component

bool opt_keyring_migration_to_component = false

◆ opt_keyring_migration_user

char* opt_keyring_migration_user = nullptr

◆ opt_keyring_operations

bool opt_keyring_operations = true

◆ opt_large_files

bool opt_large_files = sizeof(my_off_t) > 4

◆ opt_large_page_size

uint opt_large_page_size = 0

◆ opt_large_pages

bool opt_large_pages = false

◆ opt_local_infile

bool opt_local_infile

◆ opt_log_error_services

char* opt_log_error_services

◆ opt_log_error_suppression_list

char* opt_log_error_suppression_list

◆ opt_log_queries_not_using_indexes

bool opt_log_queries_not_using_indexes = false

◆ opt_log_slow_admin_statements

bool opt_log_slow_admin_statements = false

◆ opt_log_slow_extra

bool opt_log_slow_extra = false

◆ opt_log_slow_replica_statements

bool opt_log_slow_replica_statements = false

◆ opt_log_throttle_queries_not_using_indexes

ulong opt_log_throttle_queries_not_using_indexes = 0

◆ opt_log_timestamps

ulong opt_log_timestamps

◆ opt_log_unsafe_statements

bool opt_log_unsafe_statements

◆ opt_mandatory_roles

LEX_STRING opt_mandatory_roles

◆ opt_mandatory_roles_cache

bool opt_mandatory_roles_cache = false

◆ opt_mta_checkpoint_group

uint opt_mta_checkpoint_group

◆ opt_mta_checkpoint_period

uint opt_mta_checkpoint_period

◆ opt_mts_pending_jobs_size_max

ulonglong opt_mts_pending_jobs_size_max

◆ opt_mts_replica_parallel_workers

ulong opt_mts_replica_parallel_workers

◆ opt_myisam_log

bool opt_myisam_log
static

◆ opt_myisam_use_mmap

bool opt_myisam_use_mmap = false

◆ opt_mysql_tmpdir

char* opt_mysql_tmpdir

◆ opt_noacl

bool opt_noacl = false

◆ opt_partial_revokes

bool opt_partial_revokes

◆ opt_persist_sensitive_variables_in_plaintext

bool opt_persist_sensitive_variables_in_plaintext {true}

◆ opt_protocol_compression_algorithms

char* opt_protocol_compression_algorithms

◆ opt_readonly

bool opt_readonly = false

◆ opt_regexp_stack_limit

int32_t opt_regexp_stack_limit

◆ opt_regexp_time_limit

int32_t opt_regexp_time_limit

◆ opt_relaylog_index_name

char * opt_relaylog_index_name = nullptr

◆ opt_replica_allow_batching

bool opt_replica_allow_batching = true

◆ opt_replica_compressed_protocol

bool opt_replica_compressed_protocol

◆ opt_replica_preserve_commit_order

bool opt_replica_preserve_commit_order

◆ opt_replica_sql_verify_checksum

bool opt_replica_sql_verify_checksum = true

◆ opt_require_secure_transport

bool opt_require_secure_transport = false

◆ opt_safe_user_create

bool opt_safe_user_create = false

◆ opt_secure_file_priv

const char* opt_secure_file_priv

◆ opt_server_id_bits

uint opt_server_id_bits = 0

◆ opt_server_id_mask

ulong opt_server_id_mask = 0

◆ opt_short_log_format

bool opt_short_log_format = false
static

◆ opt_show_replica_auth_info

bool opt_show_replica_auth_info

◆ opt_skip_name_resolve

bool opt_skip_name_resolve = false

◆ opt_skip_show_db

bool opt_skip_show_db = false

◆ opt_slow_log

bool opt_slow_log

◆ opt_slow_logname

char * opt_slow_logname

◆ opt_source_verify_checksum

bool opt_source_verify_checksum = false

◆ opt_specialflag

ulong opt_specialflag
static

◆ opt_ssl_fips_mode

ulong opt_ssl_fips_mode = SSL_FIPS_MODE_OFF

◆ opt_super_large_pages

bool opt_super_large_pages = false

◆ opt_super_readonly

bool opt_super_readonly = false

◆ opt_table_encryption_privilege_check

bool opt_table_encryption_privilege_check = false

◆ opt_tc_log_file

const char* opt_tc_log_file

◆ opt_tc_log_size

ulong opt_tc_log_size

◆ opt_upgrade_mode

long opt_upgrade_mode = UPGRADE_AUTO

◆ opt_using_transactions

bool opt_using_transactions

◆ opt_validate_config

bool opt_validate_config = false

◆ opt_verbose

bool opt_verbose = false

◆ orig_argc

int orig_argc

Holds the "original" (i.e.

as on startup) set of arguments.

The argument processing goes as follows:

  1. At startup the "original" set of arguments is shallow-copied into the read only list orig_argv.
  2. The config file arguments are read from the config files (.cnf and persisted read-only) and are appended as command line arguments. In the process the argv is deep copied because of the expansion
  3. The result from 2 is set into remaining_argv / remaining_argc.
  4. Then remaining_argv is fed into various consumers:
    • the server compiled in set of arguments
    • the early plugins
    • the rest of the plugins
    • the error log
    • the components from the persisted dynamic loader init. All of the above "take away" the values they match from the extended command line set. And vary the values of my_getopt_skip_unknown according to their needs (mostly keep it set). As a result, when the server is done booting up the things that remain in remaining_argv become less and less.
  5. When the bootstrap process is done a check is run: my_getopt_skip_unknown is set to off and the argument parser is called on remaining_argv with an empty set of argument definitions. This ensures that all of the remaining argument values in remaining_argv are either marked as "loose" (i.e. optional) or are "consumed" by prior argument list processings. The side effect of this is that all –loose arguments are also consumed out of remaining_argv.
  6. A check is made if the remaining_argv is an empty list. If not the server exits.
  7. At this point the server is marked as successfully started.
  8. Subsequent argument processings happen when e.g. a plugin is loaded via mysql_install_plugin or a component registers system variables via mysql_component_sys_variable_imp::register_variable. However, since remaining_argv is empty these need to run over the orig_argc/orig_argv. But argument value assignment would normally "eat" out the values found. This would mean that the orig_argv array will get shortened and if you load the same plugin twice for example its system variables will not have the values supplied the second time they start. Thus once the server is started (mysqld_server_started is on) any argument value parsing should happen over a copy of orig_argc/orig_argv that should subsequently be discarded. remaining_argv should not be consulted anymore at this point.

◆ orig_argv

char** orig_argv

◆ partial_revokes

std::atomic<bool> partial_revokes

◆ password_require_current

bool password_require_current = false

◆&nbs