MYSQL启动过程经过以下顺序
1.mysql读取配置文件的顺序
读取顺序
/etc/my.cnf>/etc/mysql/my.cnf>/usr/etc/my.cnf ~/.my.cnf
2.MYSQL启动方式
MYSQL启动方式有三种:mysqld、mysqld_safe、mysqld_multi(主要用于多实例启动)
首先当我们使用service mysqld start 使用的用MYSQL.SERVER脚本,这个脚本默认mysqld_safe 来启动mysqld,所以通常我们启动MYSQL之后会看到两个进程存在(mysqld和mysql_safe的进程)这是单实例的启动方式。mysqld_multi 用来启动多实例,也是通过调用MYSQLD_SAFE和MYSQLD来启动MYSQL的。
3.mysql 启动原理
默认的MYSQL的服务启动程序是MYSQL.server,mysql.server程序主要是会用到两个程序和一个函数,程序为MYSQLD_SAFE和MY_PRINT_DEFAULTS,函数为PARSE_SERVER_ARGUMENTS
(1)my_print_defaults:读取my.cnf配置文件,输出参数传递给parse_server_arguments,该程序只读my.cnf中[mysqld]中的参数。
(2)parse_server_arguments:该函数处理my_print_defaults传递过来的参数赋值给--basedir、--datadir、--pid-file、--server-startup-timeout
(3)myslqd_safe:mysqld_safe程序调用mysqld程序来启动mysql服务,[mysqld_safe]会覆盖mysqld部分中的参数
(4)mysqld_multi会读取配置文件中的[mysqld_muti],[mysqldN]下面的参数,N需要时一个整数,建议用端口号表示,该部分的配置会覆盖[mysqld]部分中的配置
(5)在mysqld进程挂掉的时候,mysqld_safe进程会监测到并重新将mysqld启动起来。