MySQL 9.0.0
Source Code Documentation
|
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 |
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_var * | get_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 > | |
T | 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... | |
MySQL server daemon.
#define FILE_LINE_ARGS |
#define LOG_SUBSYSTEM_TAG "Server" |
#define MYSQL_SERVER_SUFFIX_STR MYSQL_SERVER_SUFFIX_DEF |
#define mysqld_charset &my_charset_latin1 |
#define mysqld_default_locale_name "en_US" |
#define NUMBER_OF_COMPONENTS 1 |
typedef weak_service_reference<const mysql_service_mysql_option_tracker_option_t, c_name, s_name> srv_weak_option_option |
|
static |
|
static |
|
static |
Adjust open_files_limit
.
Computation is based on:
max_connections
,table_cache_size
,
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Character set and collation error reporter that prints to sql error log.
level | log message level |
ecode | Error code of the error message. |
args | va_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.
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.
address_value | Address value to check |
address_length | Address length |
|
static |
Check acceptable value(s) of the parameter admin-address.
admin_bind_addr_str | Value of the parameter admin-address | |
[out] | admin_address_info | List of addresses to listen and their corresponding network namespaces if set. |
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.
thd | THD handle |
true | Parital revokes exists; updated the global variables. |
false | Partial revokes does not exist. |
|
static |
Check acceptable value(s) of parameter bind-address.
bind_address | Value of the parameter bind-address | |
[out] | valid_bind_addresses | List of addresses to listen and their corresponding network namespaces if set. |
|
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.
|
static |
check_secure_file_priv_path : Checks path specified through –secure-file-priv and raises warning in following cases:
It throws error in following cases:
Assumptions :
true | : Validation is successful with/without warnings |
false | : Validation failed. Error is raised. |
|
static |
|
static |
|
static |
void clean_up_mysqld_mutexes | ( | ) |
|
static |
|
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.
false | success |
true | failure |
|
static |
Initializes component infrastructure by bootstrapping core component subsystem.
false | success |
true | failure |
|
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.
bool create_native_table_for_pfs | ( | const Plugin_table * | t | ) |
|
static |
Create file to store pid number.
|
static |
bool deinitialize_minimal_chassis | ( | mysql_service_registry_t * | registry | ) |
|
static |
Remove the process' pid file.
flags | file operation flags |
bool do_create_native_table_for_pfs | ( | THD * | thd, |
const Plugin_table * | t | ||
) |
|
static |
bool drop_native_table_for_pfs | ( | const char * | schema_name, |
const char * | table_name | ||
) |
|
static |
|
static |
|
static |
|
static |
Save all options which was auto-generated by server-self into the given file.
fname | The name of the file in which the auto-generated options will b e saved. |
|
static |
|
static |
Generate a UUID and save it into server_uuid variable.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Get server options from the command line, and perform related server initializations.
[in,out] | argc_ptr | command line options (count) |
[in,out] | argv_ptr | command line options (values) |
|
static |
int * get_remaining_argc | ( | ) |
char *** get_remaining_argv | ( | ) |
enum_server_operational_state get_server_state | ( | ) |
Returns the current state of the server : booting, operational or shutting down.
struct System_status_var * get_thd_status_var | ( | THD * | thd, |
bool * | aggregated | ||
) |
void gtid_server_cleanup | ( | ) |
GTID cleanup destroys objects and reset their pointer.
Function is reentrant.
bool gtid_server_init | ( | ) |
GTID initialization.
|
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:
|
static |
void init_client_psi_keys | ( | void | ) |
|
static |
int init_common_variables | ( | ) |
|
static |
|
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'.
|
static |
|
static |
Initialise all the performance schema instrumentation points used by the server.
|
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.
|
static |
|
static |
|
static |
|
static |
|
static |
bool initialize_minimal_chassis | ( | mysql_service_registry_t ** | registry | ) |
|
static |
|
static |
Check if it is a global replication filter setting.
argument | The setting of startup option –replicate-*. |
0 | OK |
1 | Error |
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.
path | null terminated character string |
true | The path is secure |
false | The path isn't secure |
void kill_mysql | ( | void | ) |
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()
|
static |
void my_init_signals | ( | ) |
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.
|
static |
|
static |
|
static |
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.
void my_str_free_mysqld | ( | void * | ptr | ) |
void * my_str_malloc_mysqld | ( | size_t | size | ) |
void * my_str_realloc_mysqld | ( | void * | ptr, |
size_t | size | ||
) |
|
static |
Initializes MySQL Server component infrastructure part by initialize of dynamic loader persistence.
false | success |
true | failure |
|
static |
Handle arguments for multiple key caches.
|
static |
Initialize MySQL global variables to default values.
We don't need to set variables referred to in my_long_options as these are initialized by my_getopt.
|
static |
bool mysqld_get_one_option | ( | int | optid, |
const struct my_option * | opt, | ||
char * | argument | ||
) |
int mysqld_main | ( | int | argc, |
char ** | argv | ||
) |
bool mysqld_partial_revokes | ( | ) |
Get status partial_revokes on server.
true | Parital revokes is ON |
flase | Partial revokes is OFF |
|
static |
Compares two options' names, treats - and _ the same.
|
static |
|
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.
begin_address_value | start of a string containing an address value | |
end_address_value | pointer to an end of string containing an address value. Has the value nullptr in case address value not continue | |
[out] | address_value | address value extracted from address string |
[out] | network_namespace | network namespace extracted from the address string value if any |
void parse_filter_arg | ( | char ** | channel_name, |
char ** | filter_val, | ||
char * | argument | ||
) |
Extract channel name and filter value from argument.
[out] | channel_name | The name of the channel. |
[out] | filter_val | The value of filter. |
argument | The setting of startup option –replicate-*. |
|
static |
Extract channel name and filter value from argument.
[out] | key | The db is rewritten from. |
[out] | val | The db is rewritten to. |
argument | The value of filter. |
0 | OK |
1 | Error |
void persisted_variables_refresh_keyring_support | ( | ) |
|
static |
|
static |
|
static |
Execute the bootstrap thread, if required.
When mysqld is started with –initialize only, the bootstrap thread executes
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:
Compiled in statements are executed in a privileged mode, with SYSTEM_THREAD_SERVER_INITIALIZE.
void refresh_status | ( | ) |
Reset global and session status variables.
void register_server_metric_sources | ( | ) |
REQUIRES_SERVICE_PLACEHOLDER | ( | mysql_psi_system_v1 | ) |
REQUIRES_SERVICE_PLACEHOLDER | ( | mysql_rwlock_v1 | ) |
void reset_status_by_thd | ( | ) |
|
inlinestatic |
Create a replication file name or base for file names.
key | Instrumentation key used to track allocations | |
[in] | opt | Value of option, or NULL |
[in] | def | Default value if option value is not set. |
[in] | ext | Extension to use for the path |
static const std::string s_name | ( | "mysql_option_tracker_option" | ) |
|
static |
This function is used to de-initialize the mysql_server component services.
|
static |
This function is used to initialize the mysql_server component services.
|
static |
Block and wait until server components have been initialized.
|
static |
Notify any waiters that the server components have been initialized.
Used by the signal handler thread and by Cluster.
|
static |
void set_mysqld_partial_revokes | ( | bool | value | ) |
Set partial_revokes with a given value.
value | true or false indicating the status of partial revokes turned ON/OFF on server. |
|
static |
void set_remaining_args | ( | int | argc, |
char ** | argv | ||
) |
|
static |
Change root user if started with –chroot
.
|
static |
|
static |
|
static |
|
static |
|
static |
|
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.
0 | Success |
1 | Log pipeline not set up as requested. Caller should abort. |
|
inline |
|
static |
|
static |
|
static |
|
static |
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
bool signal_restart_server | ( | ) |
Signal the server thread for restart.
ulong sql_rnd_with_mutex | ( | ) |
|
static |
|
static |
Check if file system used for databases is case insensitive.
dir_name | Directory to test |
-1 | Don't know (Test failed) |
0 | File system is case sensitive |
1 | File system is case insensitive |
|
static |
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 unregister_server_metric_sources | ( | ) |
|
static |
ulong aborted_threads |
vector<my_option> all_options |
|
static |
|
static |
|
static |
|
static |
|
static |
PSI_stage_info* all_server_stages[] |
|
static |
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.
|
static |
Memory for allocating command line arguments, after load_defaults().
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.
std::atomic<query_id_t> atomic_global_query_id {1} |
std::atomic<int32> atomic_replica_open_temp_tables {0} |
ulong back_log |
const char * binary_keyword = "BINARY" |
ulong binlog_cache_disk_use = 0 |
ulong binlog_cache_size = 0 |
ulong binlog_cache_use = 0 |
ulong binlog_checksum_options |
ulong binlog_error_action |
const char* binlog_error_action_list[] |
ulong binlog_expire_logs_seconds = 0 |
bool binlog_expire_logs_seconds_supplied = false |
Rpl_filter* binlog_filter |
const char* binlog_format_names[] = {"MIXED", "STATEMENT", "ROW", NullS} |
|
static |
bool binlog_gtid_simple_recovery |
ulong binlog_row_event_max_size |
ulong binlog_row_metadata |
ulong binlog_stmt_cache_disk_use = 0 |
ulong binlog_stmt_cache_size = 0 |
ulong binlog_stmt_cache_use = 0 |
CHARSET_INFO* character_set_filesystem |
|
static |
bool check_proxy_users = false |
bool clone_recovery_error = false |
True, if clone recovery has failed.
For managed server we restart server again with old database files.
bool clone_startup = false |
True, if restarted from a cloned database.
This information is needed by GR to set some configurations right after clone.
|
static |
|
static |
PSI_statement_info com_statement_info[(uint) COM_END+1] |
Statement instrumentation keys (com).
The last entry, at [COM_END], is for packet errors.
SHOW_VAR com_status_vars[] |
|
static |
const char* component_urns[] = {"file://component_reference_cache"} |
mysql_cond_t COND_compress_gtid_table |
mysql_cond_t COND_server_started |
mysql_cond_t COND_socket_listener_active |
mysql_cond_t COND_start_signal_handler |
ulong connect_timeout |
ulong connection_errors_internal = 0 |
Number of connection errors from internal server errors.
ulong connection_errors_peer_addr = 0 |
Number of errors when reading the peer address.
std::atomic<int32> connection_events_loop_aborted_flag |
|
static |
|
static |
|
static |
ulong current_pid |
my_decimal decimal_zero |
char default_binlog_index_name[FN_REFLEN+index_ext_length] |
char default_binlogfile_name[FN_REFLEN] |
|
static |
|
static |
|
static |
char default_logfile_name[FN_REFLEN] |
uint default_password_lifetime = 0 |
char default_relaylog_index_name[FN_REFLEN+relay_ext_length+ index_ext_length] |
char default_relaylogfile_name[FN_REFLEN+relay_ext_length] |
const char* default_storage_engine |
const char* default_tmp_storage_engine |
Time_zone* default_tz |
char* default_tz_name |
ulong delay_key_write_options |
ulong delayed_insert_errors |
ulong delayed_insert_limit |
ulong delayed_insert_threads |
ulong delayed_insert_timeout |
ulong delayed_insert_writes |
ulong delayed_queue_size |
ulong delayed_rows_in_use |
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 |
Equal_creator equal_creator |
const mysql_service_mysql_runtime_error_t* error_service |
|
static |
CHARSET_INFO * files_charset_info |
const char* first_keyword = "first" |
time_t flush_status_time |
ulong flush_time |
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 |
char glob_hostname[HOSTNAME_LENGTH+1] |
struct aggregated_stats global_aggregated_stats |
ulonglong global_conn_mem_counter = 0 |
ulonglong global_conn_mem_limit = 0 |
struct System_status_var global_status_var |
struct System_variables global_system_variables |
Checkable_rwlock* global_tsid_lock = nullptr |
Protects Gtid_state. See comment above gtid_state for details.
Gt_creator gt_creator |
uint32 gtid_executed_compression_period = 0 |
Gtid_state* gtid_state = nullptr |
Global state of GTIDs.
Gtid_table_persistor* gtid_table_persistor = nullptr |
uint ha_open_options |
|
static |
SHOW_COMP_OPTION have_compress |
SHOW_COMP_OPTION have_dlopen |
SHOW_COMP_OPTION have_geometry |
SHOW_COMP_OPTION have_profiling |
SHOW_COMP_OPTION have_query_cache |
SHOW_COMP_OPTION have_rtree_keys |
SHOW_COMP_OPTION have_statement_timeout = SHOW_OPTION_DISABLED |
SHOW_COMP_OPTION have_symlink |
handlerton* heap_hton |
uint host_cache_size |
The size of the host_cache.
bool host_cache_size_specified = false |
const char* in_left_expr_name = "<left expr>" |
name of reference on left expression in rewritten IN subquery
const char* index_ext = ".index" |
const int index_ext_length = 6 |
handlerton* innodb_hton |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
PSI_cond_key key_commit_order_manager_cond |
PSI_mutex_key key_commit_order_manager_mutex |
PSI_cond_key key_COND_active |
PSI_cond_key key_COND_cache_status_changed |
|
static |
PSI_cond_key key_COND_delegate_connection_cond_var |
PSI_cond_key key_COND_group_replication_connection_cond_var |
|
static |
PSI_cond_key key_cond_mta_gaq |
PSI_cond_key key_COND_pool |
|
static |
PSI_cond_key key_cond_slave_parallel_pend_jobs |
PSI_cond_key key_cond_slave_parallel_worker |
PSI_cond_key key_cond_slave_worker_hash |
|
static |
|
static |
PSI_cond_key key_COND_thr_lock |
PSI_file_key key_file_binlog |
PSI_file_key key_file_binlog_cache |
PSI_file_key key_file_binlog_index |
PSI_file_key key_file_binlog_index_cache |
|
static |
PSI_file_key key_file_dbopt |
PSI_file_key key_file_ERRMSG |
PSI_file_key key_file_fileparser |
PSI_file_key key_file_frm |
PSI_file_key key_file_general_log |
PSI_file_key key_file_hash_join |
PSI_file_key key_file_init |
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 |
|
static |
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_slow_log |
PSI_file_key key_file_tclog |
PSI_file_key key_file_trg |
PSI_file_key key_file_trn |
PSI_cond_key key_gtid_ensure_index_cond |
PSI_mutex_key key_gtid_ensure_index_mutex |
PSI_mutex_key key_hash_filo_lock |
PSI_cond_key key_item_func_sleep_cond |
|
static |
|
static |
|
static |
|
static |
PSI_mutex_key key_LOCK_cost_const |
|
static |
PSI_mutex_key key_LOCK_current_cond |
|
static |
PSI_mutex_key key_LOCK_delegate_connection_mutex |
PSI_mutex_key key_LOCK_error_log |
|
static |
|
static |
|
static |
PSI_mutex_key key_LOCK_group_replication_connection_mutex |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
PSI_mutex_key key_LOCK_query_plan |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
PSI_mutex_key key_LOCK_tc |
PSI_mutex_key key_LOCK_thd_data |
PSI_mutex_key key_LOCK_thd_protocol |
PSI_mutex_key key_LOCK_thd_query |
PSI_mutex_key key_LOCK_thd_security_ctx |
PSI_mutex_key key_LOCK_thd_sysvar |
|
static |
|
static |
|
static |
PSI_mutex_key key_LOG_LOCK_log |
|
static |
PSI_cond_key key_monitor_info_run_cond |
PSI_mutex_key key_monitor_info_run_lock |
PSI_mutex_key key_mta_gaq_LOCK |
PSI_mutex_key key_mta_temp_table_LOCK |
PSI_mutex_key key_mutex_replica_reporting_capability_err_lock |
PSI_mutex_key key_mutex_replica_worker_hash |
PSI_mutex_key key_mutex_slave_parallel_pend_jobs |
PSI_mutex_key key_mutex_slave_parallel_worker |
PSI_mutex_key key_mutex_slave_parallel_worker_count |
PSI_mutex_key key_object_cache_mutex |
PSI_cond_key key_object_loading_cond |
PSI_cond_key key_PAGE_cond |
PSI_cond_key key_relay_log_info_data_cond |
PSI_mutex_key key_relay_log_info_data_lock |
PSI_cond_key key_relay_log_info_log_space_cond |
PSI_mutex_key key_relay_log_info_log_space_lock |
PSI_mutex_key key_relay_log_info_run_lock |
PSI_cond_key key_relay_log_info_sleep_cond |
PSI_mutex_key key_relay_log_info_sleep_lock |
PSI_cond_key key_relay_log_info_start_cond |
PSI_cond_key key_relay_log_info_stop_cond |
PSI_mutex_key key_relay_log_info_thd_lock |
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_cond_key key_RELAYLOG_update_cond |
PSI_rwlock_key key_rwlock_Binlog_relay_IO_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_channel_lock |
PSI_rwlock_key key_rwlock_channel_map_lock |
PSI_rwlock_key key_rwlock_channel_to_filter_lock |
|
static |
PSI_rwlock_key key_rwlock_gtid_mode_lock |
PSI_rwlock_key key_rwlock_LOCK_logger |
|
static |
|
static |
|
static |
|
static |
PSI_rwlock_key key_rwlock_receiver_tsid_lock |
PSI_rwlock_key key_rwlock_resource_group_mgr_map_lock |
PSI_rwlock_key key_rwlock_rpl_filter_lock |
PSI_rwlock_key key_rwlock_Server_state_delegate_lock |
PSI_rwlock_key key_rwlock_Trans_delegate_lock |
PSI_file_key key_select_to_file |
PSI_socket_key key_socket_client_connection |
PSI_socket_key key_socket_tcpip |
PSI_socket_key key_socket_unix |
PSI_cond_key key_source_info_data_cond |
PSI_mutex_key key_source_info_data_lock |
PSI_cond_key key_source_info_rotate_cond |
PSI_mutex_key key_source_info_rotate_lock |
PSI_mutex_key key_source_info_run_lock |
PSI_cond_key key_source_info_sleep_cond |
PSI_mutex_key key_source_info_sleep_lock |
PSI_cond_key key_source_info_start_cond |
PSI_cond_key key_source_info_stop_cond |
PSI_mutex_key key_source_info_thd_lock |
PSI_mutex_key key_structure_guard_mutex |
PSI_mutex_key key_TABLE_SHARE_LOCK_ha_data |
PSI_mutex_key key_thd_timer_mutex |
PSI_thread_key key_thread_bootstrap |
PSI_thread_key key_thread_compress_gtid_table |
PSI_thread_key key_thread_handle_con_admin_sockets |
PSI_thread_key key_thread_handle_manager |
|
static |
PSI_thread_key key_thread_one_connection |
PSI_thread_key key_thread_parser_service |
|
static |
std::atomic<time_t> last_mixed_non_transactional_engine_warning = 0 |
Stores the last time the warning for non-composable engine is emitted.
|
static |
char lc_messages_dir[FN_REFLEN] |
char* lc_messages_dir_ptr |
|
static |
Le_creator le_creator |
bool listen_admin_interface_in_separate_thread |
const char* load_default_groups[] |
mysql_mutex_t LOCK_admin_tls_ctx_options |
mysql_mutex_t LOCK_authentication_policy |
mysql_mutex_t LOCK_collect_instance_log |
mysql_mutex_t LOCK_compress_gtid_table |
mysql_mutex_t LOCK_crypt |
mysql_mutex_t LOCK_default_password_lifetime |
mysql_mutex_t LOCK_error_messages |
mysql_mutex_t LOCK_global_conn_mem_limit |
mysql_mutex_t LOCK_global_system_variables |
mysql_mutex_t LOCK_keyring_operations |
mysql_mutex_t LOCK_log_throttle_qni |
mysql_mutex_t LOCK_mandatory_roles |
mysql_mutex_t LOCK_partial_revokes |
mysql_mutex_t LOCK_password_history |
mysql_mutex_t LOCK_password_reuse_interval |
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.
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.
mysql_mutex_t LOCK_replica_net_timeout |
mysql_mutex_t LOCK_replica_trans_dep_tracker |
mysql_mutex_t LOCK_reset_gtid_table |
mysql_mutex_t LOCK_rotate_binlog_master_key |
mysql_rwlock_t LOCK_server_shutting_down |
mysql_mutex_t LOCK_server_started |
mysql_mutex_t LOCK_socket_listener_active |
mysql_mutex_t LOCK_sql_rand |
mysql_mutex_t LOCK_sql_replica_skip_counter |
mysql_mutex_t LOCK_start_signal_handler |
mysql_mutex_t LOCK_status |
mysql_rwlock_t LOCK_sys_init_connect |
mysql_rwlock_t LOCK_sys_init_replica |
mysql_rwlock_t LOCK_system_variables_hash |
mysql_mutex_t LOCK_tls_ctx_options |
mysql_mutex_t LOCK_user_conn |
mysql_mutex_t LOCK_uuid_generator |
ulong locked_account_connection_count = 0 |
bool locked_in_memory |
const double log_10[] |
bool log_bin_supplied = false |
const char* log_error_dest |
ulong log_error_verbosity = 3 |
ulonglong log_output_options |
bool log_replica_updates_supplied = false |
char logname_path[FN_REFLEN] |
bool lower_case_file_system = false |
uint lower_case_table_names |
|
static |
Lt_creator lt_creator |
|
static |
ulonglong max_binlog_cache_size = 0 |
ulong max_binlog_size |
ulonglong max_binlog_stmt_cache_size = 0 |
ulong max_connect_errors |
ulong max_connections |
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.
ulong max_relay_log_size |
struct System_variables max_system_variables |
bool migrate_connect_options = false |
Variable to check if connection related options are set as part of keyring migration.
volatile bool mqh_used = false |
ulong mts_parallel_option |
char* my_admin_bind_addr_str |
char* my_bind_addr_str |
MY_LOCALE* my_default_lc_messages |
MY_LOCALE* my_default_lc_time_names |
const char* my_localhost = "localhost" |
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.
const char* my_share_dir[FN_REFLEN] |
handlerton* myisam_hton |
|
static |
char mysql_charsets_dir[FN_REFLEN] |
char* mysql_data_home = const_cast<char *>(".") |
size_t mysql_data_home_len = 1 |
char mysql_home[FN_REFLEN] |
char* mysql_home_ptr |
char mysql_real_data_home[FN_REFLEN] |
const char* mysql_real_data_home_ptr = mysql_real_data_home |
MY_TMPDIR mysql_tmpdir_list |
char mysql_unpacked_real_data_home[FN_REFLEN] |
size_t mysql_unpacked_real_data_home_len |
uint mysqld_admin_port |
|
static |
uint mysqld_port |
uint mysqld_port_timeout |
|
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.
bool mysqld_server_started = false |
sigset_t mysqld_signal_mask |
|
static |
const char* mysqld_unix_port |
|
static |
CHARSET_INFO* national_charset_info |
Ne_creator ne_creator |
std::atomic<bool> offline_mode |
ulong open_files_limit |
bool opt_allow_suspicious_udfs |
bool opt_always_activate_granted_roles = false |
char* opt_authentication_policy |
|
static |
for –autocommit command-line option
bool opt_bin_log |
char * opt_bin_logname |
bool opt_binlog_expire_logs_auto_purge {true} |
long opt_binlog_group_commit_sync_delay = 0 |
ulong opt_binlog_group_commit_sync_no_delay_count = 0 |
int32 opt_binlog_max_flush_queue_time = 0 |
|
static |
|
static |
bool opt_debugging = false |
bool opt_disable_networking = false |
char* opt_disabled_storage_engines |
bool opt_enable_named_pipe = false |
|
static |
|
static |
bool opt_general_log |
bool opt_general_log_raw |
char* opt_general_logname |
bool opt_help = false |
LEX_STRING opt_init_connect |
char * opt_init_file |
LEX_STRING opt_init_replica |
bool opt_initialize = false |
char* opt_keyring_migration_destination = nullptr |
bool opt_keyring_migration_from_component = false |
char* opt_keyring_migration_host = nullptr |
char* opt_keyring_migration_password = nullptr |
ulong opt_keyring_migration_port = 0 |
char* opt_keyring_migration_socket = nullptr |
char* opt_keyring_migration_source = nullptr |
bool opt_keyring_migration_to_component = false |
char* opt_keyring_migration_user = nullptr |
bool opt_keyring_operations = true |
bool opt_large_files = sizeof(my_off_t) > 4 |
uint opt_large_page_size = 0 |
bool opt_large_pages = false |
bool opt_local_infile |
char* opt_log_error_services |
char* opt_log_error_suppression_list |
bool opt_log_queries_not_using_indexes = false |
bool opt_log_slow_admin_statements = false |
bool opt_log_slow_extra = false |
bool opt_log_slow_replica_statements = false |
ulong opt_log_throttle_queries_not_using_indexes = 0 |
ulong opt_log_timestamps |
bool opt_log_unsafe_statements |
LEX_STRING opt_mandatory_roles |
bool opt_mandatory_roles_cache = false |
uint opt_mta_checkpoint_group |
uint opt_mta_checkpoint_period |
ulonglong opt_mts_pending_jobs_size_max |
ulong opt_mts_replica_parallel_workers |
|
static |
bool opt_myisam_use_mmap = false |
char* opt_mysql_tmpdir |
bool opt_noacl = false |
bool opt_partial_revokes |
bool opt_persist_sensitive_variables_in_plaintext {true} |
char* opt_protocol_compression_algorithms |
bool opt_readonly = false |
int32_t opt_regexp_stack_limit |
int32_t opt_regexp_time_limit |
char * opt_relaylog_index_name = nullptr |
bool opt_replica_allow_batching = true |
bool opt_replica_compressed_protocol |
bool opt_replica_preserve_commit_order |
bool opt_replica_sql_verify_checksum = true |
bool opt_require_secure_transport = false |
bool opt_safe_user_create = false |
const char* opt_secure_file_priv |
uint opt_server_id_bits = 0 |
ulong opt_server_id_mask = 0 |
|
static |
bool opt_show_replica_auth_info |
bool opt_skip_name_resolve = false |
bool opt_skip_show_db = false |
bool opt_slow_log |
char * opt_slow_logname |
bool opt_source_verify_checksum = false |
|
static |
ulong opt_ssl_fips_mode = SSL_FIPS_MODE_OFF |
bool opt_super_large_pages = false |
bool opt_super_readonly = false |
bool opt_table_encryption_privilege_check = false |
const char* opt_tc_log_file |
ulong opt_tc_log_size |
long opt_upgrade_mode = UPGRADE_AUTO |
bool opt_using_transactions |
bool opt_validate_config = false |
bool opt_verbose = false |
int orig_argc |
Holds the "original" (i.e.
as on startup) set of arguments.
The argument processing goes as follows:
char** orig_argv |
std::atomic<bool> partial_revokes |
bool password_require_current = false |