MySQL讀取配置檔案的順序、啟動方式、啟動原理

張衝andy發表於2017-03-22

一、MySQL讀取配置檔案的順序

讀取順序:/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf

命令驗證:
[root@mysql ~]# mysql --verbose --help | grep my.cnf 
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

二、MySQL啟動方式

MySQL的啟動方式通常分成三種:mysqld、mysqld_safe、mysqld_multi(主要用於多例項啟動)

三種方式的關係:
首先當我們使用service mysqld start或者/etc/init.d/mysqld start這樣的方式啟動的時候,其實是使用了mysql.server這個指令碼,這個指令碼預設會呼叫mysqld_safe來啟動mysqld,所以通常我們啟動mysql之後檢視程式的時候會發現有mysqld和mysqld_safe這兩個程式存在。這兩種通常都是單例項的啟動方式,當然也可以使用mysqld來啟動多例項的。而mysqld_multi用來啟動多例項,也是透過先呼叫mysqld_safe和mysqld來啟動mysql的。

三、MySQL啟動原理

預設的mysql的服務啟動程式是mysql.server,mysql.server程式主要是會用到兩個程式和一個函式,分別是my_print_defaults、myslqd_safe和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啟動起來。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2135887/,如需轉載,請註明出處,否則將追究法律責任。

相關文章