mysqld與mysqld safe的區別

2021-07-08 16:23:46 字數 4593 閱讀 1969

出處:

直接執行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程序。

**:mysqld_safe

在unix和netware中推薦使用mysqld_safe來啟動mysqld伺服器。mysqld_safe增加了一些安全特性,例如當出現錯誤時重啟伺服器並向錯誤日誌檔案寫入執行時間資訊。本節後面列出了netware的特定行為。

預設情況下,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或數字使用者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檔案

mysqld與mysql的關係

mysqld是服務,mysql是客戶端。mysqld其實是sql後台程式 也就是mysql伺服器 它是關於伺服器端的乙個程式,mysqld意思是mysql daemon,在後台執行,監聽3306埠,如果你想要使用客戶端程,這個程式必須執行,因為客戶端是通過連線伺服器來訪問資料庫的。你只有啟動了mys...

mysqld 清除日誌 記錄

清除mysqld.log 檔案 必須使用mysql 使用者 如果忘記密碼 需要清除mysql 密碼 清除mysql使用者的密碼 sudo passwd d mysql 檢視密碼狀態 sudo passwd s mysql 切換到mysql 使用者下的log目錄下執行 echo mysqld.log ...

mysqld匯入資料庫

一 匯出資料庫用mysqldump命令 注意mysql的安裝路徑,即此命令的路徑 1 匯出資料和表結構 mysqldump u使用者名稱 p密碼 資料庫名 資料庫名.sql usr local mysql bin mysqldump uroot p abc abc.sql 敲回車後會提示輸入密碼 2...