mysqld與mysqld_safe的區別

出處:http://blog.sina.com.cn/s/blog_53b13d950100vtf5.html

文章1:

直接運行mysqld程序來啓動MySQL服務的方法很少見,mysqld_safe腳本會在啓動MySQL服務器後繼續監控其運行情況,並在其死機時重新啓動它。用mysqld_safe腳本來啓動MySQL服務器的做法在BSD風格的unix系統上很常見,非BSD風格的UNIX系統中的 mysql.server腳本其實也是調用mysqld_safe腳本去啓動MySQL服務器的。它通常做如下事情:

1. 檢查系統和選項。

2. 檢查MyISAM表。

3. 保持MySQL服務器窗口。

4. 啓動並監視mysqld,如果因錯誤終止則重啓。

5. 將mysqld的錯誤消息發送到數據目錄中的host_name.err 文件。

6. 將mysqld_safe的屏幕輸出發送到數據目錄中的host_name.safe文件。

附錄(幾種啓動mysql的方式):

一、啓動方式

  1、使用 service 啓動:servicemysqld start

  2、使用 mysqld 腳本啓動:/etc/inint.d/mysqldstart

  3、使用mysqld_safe 啓動:mysqld_safe &

  二、停止

  1、使用 service 啓動:servicemysqld stop

  2、使用 mysqld 腳本啓動:/etc/inint.d/mysqldstop

  3、mysqladminshutdown

  三、重啓

  1、使用 service 啓動:servicemysqld restart

  2、使用 mysqld 腳本啓動:/etc/inint.d/mysqld restart

       3、使用mysqld_safe腳本啓動:直接kill掉mysqld進程,mysqld_safe進程會重新拉起

  官方推薦使用mysqld_safe,使用mysqld_safe啓動,會監控mysql進程,如果mysql進程關閉,自動重啓mysql進程。

轉自:http://yunwei.blog.51cto.com/381136/421031


文章2:

mysqld_safe

  在Unix和NetWare中推薦使用mysqld_safe來啓動mysqld服務器。mysqld_safe增加了一些安全特性,例如當出現錯誤時重啓服務器並向錯誤日誌文件寫入運行時間信息。本節後面列出了NetWare的特定行爲。

  註釋:爲了保持同舊版本MySQL的向後兼容性,MySQL二進制分發版仍然包括safe_mysqld作爲mysqld_safe的符號鏈接。但是,你不應再依賴它,因爲再將來將刪掉它。

  默認情況下,mysqld_safe嘗試啓動可執行mysqld-max(如果存在),否則啓動mysqld。該行爲的含義是:

  ·在Linux中,MySQL-Max RPM依賴該mysqld_safe的行爲。RPM安裝可執行mysqld-max,使mysqld_safe從該點起自動使用可執行命令。

  ·如果你安裝包括mysqld-max服務器的MySQL-Max分發版,後面升級到非-Max的MySQL版本,mysqld_safe仍然試圖運行舊的 mysqld-max服務器。升級時,你應手動刪除舊的mysqld-max服務器以確保mysqld_safe運行新的mysqld服務器。

  要想越過默認行爲並顯式指定你想要運行哪個服務器,爲mysqld_safe指定--mysqld或--mysqld-version選項。

  mysqld_safe從選項文件的[mysqld]、[server]和 [mysqld_safe]部分讀取所有選項。爲了保證向後兼容性,它還讀取 [safe_mysqld]部分,儘管在MySQL 5.1安裝中你應將這部分重新命名爲[mysqld_safe]。

  mysqld_safe支持下面的選項:

  · --help

  顯示幫助消息並退出。

  · --autoclose

  (只在NetWare中)在NetWare中,mysqld_safe可以保持窗口。當你關掉mysqld_safe NLM時,窗口不按默認設置消失。相反,它提示用戶輸入:

  **如果你想讓NetWare自動關閉窗口,在mysqld_safe中使用--autoclose選項。

  · --basedir=path

  MySQL安裝目錄的路徑。

  · --core-file-size=size

  mysqld能夠創建的內核文件的大小。選項值傳遞給ulimit -c。

  · --datadir=path

  數據目錄的路徑。

  · --defaults-extra-file=path

  除了通用選項文件所讀取的選項文件名。如果給出,必須首選該選項。

  · --defaults-file=path

  讀取的代替通用選項文件的選項文件名。如果給出,必須首選該選項。

  · --ledir=path

  包含mysqld程序的目錄的路徑。使用該選項來顯式表示服務器位置。

  · --log-error=path

  將錯誤日誌寫入給定的文件。參見5.11.1節,“錯誤日誌”。

  · --mysqld=prog_name

  想要啓動的服務器程序名(在ledir目錄)。如果你使用MySQL二進制分發版但有二進制分發版之外的數據目錄需要該選項。

  · --mysqld-version =suffix

  該選項類似--mysqld選項,但你只指定服務器程序名的後綴。基本名假定爲mysqld。例如,如果你使用--mysqld-version =max,mysqld_safe啓動ledir目錄中的mysqld-max程序。如果--mysqld-version的參數爲空,mysqld_safe使用目錄中的mysqld。

  · --nice=priority

  使用nice程序根據給定值來設置服務器的調度優先級。

  · --no-defaults

  不要讀任何選項文件。如果給出,必須首選該選項。

  · --open-files-limit=count

  mysqld能夠打開的文件的數量。選項值傳遞給 ulimit -n。請注意你需要用root啓動mysqld_safe來保證正確工作!

  · --pid-file=path

  進程ID文件的路徑。

  · --port=port_num

  用來幀聽TCP/IP連接的端口號。端口號必須爲1024或更大值,除非MySQL以root系統用戶運行。

  · --skip-character-set-client-handshake

  忽略客戶端發送的字符集信息,使用服務器的默認字符集。(選擇該選項,MySQL的動作與MySQL 4.0相同)。

  · --socket=path

  用於本地連接的Unix套接字文件。

  · --timezone=zone

  爲給定的選項值設置TZ時區環境變量。從操作系統文檔查閱合法的時區規定格式。

  · --user={user_name | user_id}

  以用戶名user_name或數字用戶ID user_id運行mysqld服務器。(本文中的“用戶”指系統登錄賬戶,而不是授權表中的MySQL用戶)。

  執行mysqld_safe時,必須先給出--defaults-file或--defaults-extra-option,或不使用選項文件。例如,該命令將不使用選項文件:

  mysqld_safe --port=port_num --defaults-file=file_name相反,使用下面的命令:

  mysqld_safe --defaults-file=file_name --port=port_num一般情況mysqld_safe腳本可以啓動從源碼或二進制MySQL分發版安裝的服務器,即使這些分發版將服務器安裝到稍微不同的位置。(參見2.1.5節,“安裝佈局”)。 mysqld_safe期望下面的其中一個條件是真的:

  ·可以根據調用mysqld_safe的目錄找到服務器和數據庫。在二進制分發版中,mysqld_safe看上去在bin和data目錄的工作目錄下。對於源碼分發版,爲libexec和var目錄。如果你從MySQL安裝目錄執行mysqld_safe應滿足該條件(例如,二進制分發版爲/usr /local/mysql)。

  ·如果不能根據工作目錄找到服務器和數據庫,mysqld_safe試圖通過絕對路徑對它們定位。典型位置爲/usr/local/libexec和 /usr/local/var。實際位置由構建分發版時配置的值確定如果MySQL安裝到配置時指定的位置,它們應該是正確的。

  因爲mysqld_safe試圖通過工作目錄找到服務器和數據庫,只要你從MySQL安裝目錄運行mysqld_safe,可以將MySQL二進制分發版安裝到其它位置:

  shell> cd mysql_installation_directoryshell> bin/mysqld_safe&如果mysqld_safe失敗,即使從MySQL安裝目錄調用仍然失敗,你可以指定--ledir和--datadir選項來指示服務器和數據庫在你的系統中的安裝目錄。

  一般情況,你不應編輯mysqld_safe腳本。相反,應使用命令行選項或my.cnf選項文件的[mysqld_safe]部分的選項來配置mysqld_safe。一般不需要編輯mysqld_safe來正確啓動服務器。但是,如果你編輯,將來升級MySQL後會覆蓋你修改的mysqld_safe版本,因此你應對你修改的版本進行備份以便將來重裝。

  在NetWare中,mysqld_safe是一個NetWare Loadable Module (NLM),從原Unix shell腳本移植。它執行:

  1. 檢查系統和選項。

  2. 檢查MyISAM表。

  3. 保持MySQL服務器窗口。

  4. 啓動並監視mysqld,如果因錯誤終止則重啓。

  5. 將mysqld的錯誤消息發送到數據目錄中的host_name.err 文件。

  6. 將mysqld_safe的屏幕輸出發送到數據目錄中的host_name.safe文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章