介绍
本篇文章主要从查看MySQL的启动命令的代码来详细了解MySQL的启动过程,内容多为概念知识;理解MySQL的启动原理对熟悉MySQL至关重要,启动mysql服务有三种方式分别是:mysql.sever,mysqld,mysqld_safe。
my.cnf
[client]
socket=/tmp/mysql.sock
port=3306
[mysqld]
#################[base]##########################
basedir =/usr/local/mysql
datadir =/data/mysql/
innodb_data_home_dir=/data/mysql/
innodb_log_group_home_dir=/data/mysql/
port =3306
user=mysql
pid-file=/data/mysql/mysql.pid
socket =/tmp/mysql.sock
default_storage_engine=innodb
character_set_server=utf8
open_files_limit=65535
[mysqld_safe]
log_error=/usr/local/mysql/log/mysql-error.log
pid-file=/usr/local/mysql/log/mysql.pid
open_files_limit=15000
mysql.server
默认的mysql的服务启动程序是mysql.server,mysql.server程序主要是会用到两个程序和一个函数,分别是my_print_defaults、myslqd_safe和parse_server_arguments
my_print_defaults:读取my.cnf配置文件,输出参数传递给parse_server_arguments,该程序只读my.cnf中[mysqld]中的参数。
parse_server_arguments:该函数处理my_print_defaults传递过来的参数赋值给--basedir、--datadir、--pid-file、--server-startup-timeout
myslqd_safe:m