1. 程式人生 > >Mysql pid 檔案

Mysql pid 檔案

MySQL pid 檔案記錄的是當前 mysqld 程序的 pid,pid 亦即 Process ID。

未指定 pid 檔案時,pid 檔案預設名為 主機名.pid,存放的路徑在預設 MySQL 的資料目錄。通過 mysqld_safe 啟動 MySQL 時,mysqld_safe 會檢查 pid 檔案,如果 pid 檔案不存在,不做處理;如果檔案存在,且 pid 已佔用則報錯 “A mysqld process already exists”,如果檔案存在,但 pid 未佔用,則刪除 pid 檔案。檢視 MySQL 的原始碼可以知道,mysqld 啟動後會通過 create_pid_file 函式新建 pid 檔案,通過 getpid() 獲取當前程序 pid 並將 pid 寫入 pid 檔案。因此,通過 mysqld_safe 啟動時, MySQL pid 檔案的作用是:在資料檔案是同一份,但埠不同的情況下,防止同一個資料庫被啟動多次。

mysqld與mysqld_safe的區別
直接執行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檔案。
轉自:

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

ps -ef是檢視所有的程序的 根據 pid檔案 可以找到mysql的啟動資訊

 501   436   291   0 11:48上午 ??         0:01.66 /usr/local/Cellar/mysql/5.6.27/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.27 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.27/lib/plugin --bind-address=127.0.0.1 --log
-error=/usr/local/var/mysql/xxxdeMBP.lan.err --pid-file=/usr/local/var/mysql/xxxdeMBP.lan.pid