1. 程式人生 > >mysql 基礎 -mysqld_safe 啟動執行流程

mysql 基礎 -mysqld_safe 啟動執行流程

mysqld_safe指令碼執行的基本流程:
1、查詢basedir和ledir。
2、查詢datadir和my.cnf。
3、對my.cnf做一些檢查,具體檢查哪些選項請看附件中的註釋。
4、解析my.cnf中的組[mysqld]和[mysqld_safe]並和終端裡輸入的命令合併。
5、呼叫parse_arguments函式解析使用者傳遞的所有引數([email protected])。
6、對系統日誌和錯誤日誌的判斷和相應處理具體可以參考附件中的註釋,及選項--err-log引數的賦值。
7、對選項--user,--pid-file,--socket及--port進行處理及賦值,保證啟動時如果不給出這些引數它也會有值。
8、啟動mysqld.
a)啟動時會判斷一個程序號是否存在,如果存在那麼就在錯誤日誌中記錄"A mysqld process already exists"並且退出。
b)如不存在就刪除程序檔案,如果刪除不了,那麼就在錯誤日誌中記錄"Fatal error: Can't remove the pid file"並退出。
9、啟動時對錶進行檢查。如果啟動的時候檢查表的話設定key_buffer and sort_buffer會提高速度並且減少磁碟空間的使用。也可以使用myisam-recover選項恢復出錯的myisam表。

10、如果啟動時你什麼引數都沒有給,那麼它會選用一些特定的引數啟動,具體哪些引數請看附件註釋。

11、如果伺服器異常關閉,那麼會restart。

最後用三步來總結

檢查環境

檢查配置選項

啟動及啟動後的處理

總結:選用mysqld_safe啟動的好處。
1、mysqld_safe增加了一些安全特性,例如當出現錯誤時重啟伺服器並向錯誤日誌檔案寫入執行時間資訊。
2、如果有的選項是mysqld_safe 啟動時特有的,那麼可以終端指定,如果在配置檔案中指定需要放在[mysqld_safe]組裡面,放在其他組不能被正確解析。
3、mysqld_safe啟動能夠指定核心檔案大小 ulimit -c $core_file_size以及開啟的檔案的數量ulimit -n $size。
4、MySQL程式首先檢查環境變數,然後檢查配置檔案,最後檢查終端的選項,說明終端指定選項優先順序最高。