在Unix和NetWare中推薦使用mysqld_safe來(lái)啟動(dòng)mysqld服務(wù)器。mysqld_safe增加了一些安全特性,例如當(dāng)出現(xiàn)錯(cuò)誤時(shí)重啟服務(wù)器并向錯(cuò)誤日志文件寫(xiě)入運(yùn)行時(shí)間信息。本節(jié)后面列出了NetWare的特定行為。
注釋:為了保持同舊版本MySQL的向后兼容性,MySQL二進(jìn)制分發(fā)版仍然包括safe_mysqld作為mysqld_safe的符號(hào)鏈接。但是,你不應(yīng)再依賴它,因?yàn)樵賹?lái)將刪掉它。
默認(rèn)情況下,mysqld_safe嘗試啟動(dòng)可執(zhí)行mysqld-max(如果存在),否則啟動(dòng)mysqld。該行為的含義是:
· 在Linux中,MySQL-Max RPM依賴該mysqld_safe的行為。RPM安裝可執(zhí)行mysqld-max,使mysqld_safe從該點(diǎn)起自動(dòng)使用可執(zhí)行命令。
· 如果你安裝包括mysqld-max服務(wù)器的MySQL-Max分發(fā)版,后面升級(jí)到非-Max的MySQL版本,mysqld_safe仍然試圖運(yùn)行舊的 mysqld-max服務(wù)器。升級(jí)時(shí),你應(yīng)手動(dòng)刪除舊的mysqld-max服務(wù)器以確保mysqld_safe運(yùn)行新的mysqld服務(wù)器。
要想越過(guò)默認(rèn)行為并顯式指定你想要運(yùn)行哪個(gè)服務(wù)器,為mysqld_safe指定--mysqld或--mysqld-version選項(xiàng)。
mysqld_safe從選項(xiàng)文件的[mysqld]、[server]和 [mysqld_safe]部分讀取所有選項(xiàng)。為了保證向后兼容性,它還讀取 [safe_mysqld]部分,盡管在MySQL 5.1安裝中你應(yīng)將這部分重新命名為[mysqld_safe]。
mysqld_safe支持下面的選項(xiàng):
· --help
顯示幫助消息并退出。
· --autoclose
(只在NetWare中)在NetWare中,mysqld_safe可以保持窗口。當(dāng)你關(guān)掉mysqld_safe NLM時(shí),窗口不按默認(rèn)設(shè)置消失。相反,它提示用戶輸入:
*<NLM has terminated; Press any key to close the screen>*如果你想讓NetWare自動(dòng)關(guān)閉窗口,在mysqld_safe中使用--autoclose選項(xiàng)。
· --basedir=path
MySQL安裝目錄的路徑。
· --core-file-size=size
mysqld能夠創(chuàng)建的內(nèi)核文件的大小。選項(xiàng)值傳遞給ulimit -c。
· --datadir=path
數(shù)據(jù)目錄的路徑。
· --defaults-extra-file=path
除了通用選項(xiàng)文件所讀取的選項(xiàng)文件名。如果給出,必須首選該選項(xiàng)。
· --defaults-file=path
讀取的代替通用選項(xiàng)文件的選項(xiàng)文件名。如果給出,必須首選該選項(xiàng)。
· --ledir=path
包含mysqld程序的目錄的路徑。使用該選項(xiàng)來(lái)顯式表示服務(wù)器位置。
· --log-error=path
將錯(cuò)誤日志寫(xiě)入給定的文件。參見(jiàn)5.11.1節(jié),“錯(cuò)誤日志”。
· --mysqld=prog_name
想要啟動(dòng)的服務(wù)器程序名(在ledir目錄)。如果你使用MySQL二進(jìn)制分發(fā)版但有二進(jìn)制分發(fā)版之外的數(shù)據(jù)目錄需要該選項(xiàng)。
· --mysqld-version =suffix
該選項(xiàng)類似--mysqld選項(xiàng),但你只指定服務(wù)器程序名的后綴?;久俣閙ysqld。 例如,如果你使用--mysqld-version =max,mysqld_safe啟動(dòng)ledir目錄中的mysqld-max程序。如果--mysqld-version的參數(shù)為 空,mysqld_safe使用目錄中的mysqld。
· --nice=priority
使用nice程序根據(jù)給定值來(lái)設(shè)置服務(wù)器的調(diào)度優(yōu)先級(jí)。
· --no-defaults
不要讀任何選項(xiàng)文件。如果給出,必須首選該選項(xiàng)。
· --open-files-limit=count
mysqld能夠打開(kāi)的文件的數(shù)量。選項(xiàng)值傳遞給 ulimit -n。請(qǐng)注意你需要用root啟動(dòng)mysqld_safe來(lái)保證正確工作!
· --pid-file=path
進(jìn)程ID文件的路徑。
· --port=port_num
用來(lái)幀聽(tīng)TCP/IP連接的端口號(hào)。端口號(hào)必須為1024或更大值,除非MySQL以root系統(tǒng)用戶運(yùn)行。
· --skip-character-set-client-handshake
忽略客戶端發(fā)送的字符集信息,使用服務(wù)器的默認(rèn)字符集。(選擇該選項(xiàng),MySQL的動(dòng)作與MySQL 4.0相同)。
· --socket=path
用于本地連接的Unix套接字文件。
· --timezone=zone
為給定的選項(xiàng)值設(shè)置TZ時(shí)區(qū)環(huán)境變量。從操作系統(tǒng)文檔查閱合法的時(shí)區(qū)規(guī)定格式。
· --user={user_name | user_id}
以用戶名user_name或數(shù)字用戶ID user_id運(yùn)行mysqld服務(wù)器。(本文中的“用戶”指系統(tǒng)登錄賬戶,而不是 授權(quán)表中的MySQL用戶)。
執(zhí)行mysqld_safe時(shí),必須先給出--defaults-file或--defaults-extra-option,或不使用選項(xiàng)文件。例如,該命令將不使用選項(xiàng)文件:
mysqld_safe --port=port_num --defaults-file=file_name相反,使用下面的命令:
mysqld_safe --defaults-file=file_name --port=port_num一般情況mysqld_safe腳本可以啟動(dòng)從源碼或二進(jìn)制MySQL分發(fā)版安裝的服務(wù)器,即使這些分發(fā)版將服務(wù)器安裝到 稍微不同的位置。(參見(jiàn)2.1.5節(jié),“安裝布局”)。 mysqld_safe期望下面的其中一個(gè)條件是真的:
· 可以根據(jù)調(diào)用mysqld_safe的目錄找到服務(wù)器和數(shù)據(jù)庫(kù)。在二進(jìn)制分發(fā)版中,mysqld_safe看上去在bin和data目錄的工作目錄下。對(duì) 于源碼分發(fā)版,為libexec和var目錄。如果你從MySQL安裝目錄執(zhí)行mysqld_safe應(yīng)滿足該條件(例如,二進(jìn)制分發(fā)版為/usr /local/mysql)。
· 如果不能根據(jù)工作目錄找到服務(wù)器和數(shù)據(jù)庫(kù),mysqld_safe試圖通過(guò)絕對(duì)路徑對(duì)它們定位。典型位置為/usr/local/libexec和 /usr/local/var。實(shí)際位置由構(gòu)建分發(fā)版時(shí)配置的值確定如果MySQL安裝到配置時(shí)指定的位置,它們應(yīng)該是正確的。
因?yàn)閙ysqld_safe試圖通過(guò)工作目錄找到服務(wù)器和數(shù)據(jù)庫(kù),只要你從MySQL安裝目錄運(yùn)行mysqld_safe,可以將MySQL二進(jìn)制分發(fā)版安裝到其它位置:
shell> cd mysql_installation_directoryshell> bin/mysqld_safe &如果mysqld_safe失敗,即使從MySQL安裝目錄調(diào)用仍然失敗,你可以指定--ledir和--datadir選項(xiàng)來(lái)指示服務(wù)器和數(shù) 據(jù)庫(kù)在你的系統(tǒng)中的安裝目錄。
一般情況,你不應(yīng)編輯mysqld_safe腳本。相反,應(yīng)使用命令行選項(xiàng)或my.cnf選項(xiàng) 文件的[mysqld_safe]部分的選項(xiàng)來(lái)配置mysqld_safe。一般不需要編輯mysqld_safe來(lái)正確啟動(dòng)服務(wù)器。但是,如果你編輯, 將來(lái)升級(jí)MySQL后會(huì)覆蓋你修改的mysqld_safe版本,因此你應(yīng)對(duì)你修改的版本進(jìn)行備份以便將來(lái)重裝。
在NetWare中,mysqld_safe是一個(gè)NetWare Loadable Module (NLM),從原Unix shell腳本移植。它執(zhí)行:
1. 檢查系統(tǒng)和選項(xiàng)。
2. 檢查MyISAM表。
3. 保持MySQL服務(wù)器窗口。
4. 啟動(dòng)并監(jiān)視mysqld,如果因錯(cuò)誤終止則重啟。
5. 將mysqld的錯(cuò)誤消息發(fā)送到數(shù)據(jù)目錄中的host_name.err 文件。
6. 將mysqld_safe的屏幕輸出發(fā)送到數(shù)據(jù)目錄中的host_name.safe文件
更多信息請(qǐng)查看IT技術(shù)專欄