【MySQL】mysql啟動常見報錯 mysqld_safe mysqld from pid file hostname.pid ended

神諭丶發表於2015-11-25
【問題描述】:
在透過 mysqld_safe & 或 mysqld_safe & --user=xxxx mysqld服務時,常常會報如下錯誤:
mysqld_safe mysqld from pid file /xxxx/xxxx/xxxx/hostname.pid ended

*.pid是存放mysqld process id的檔案,預設名字為hostname.pid。

【解決方案】:
可以先檢查 hostname.
err檔案,預設位置在$datadir中,tail -n 100看一下是否有ERROR,可以順帶檢查一下WARNING。
大多數問題可以透過檢查ERROR搞定。
比如 unknown variable 'autocommit= ***',這類手滑導致拼寫錯誤導致mysqld無法識別該引數而無法啟動。

確定啟動時所用的配置檔案是哪一個。
一般預設順序為:
/etc/my.cnf  /etc/mysql/my.cnf  $basedir/etc/my.cnf  ~/.my.cnf 

然後確定配置檔案中以下內容是否為你的mysql安裝的路徑:

pid-file 
user
socket
port 
basedir
datadir  
對應的路徑是否設定正確。

確定執行mysqld_safe & 的使用者,假如此時OS使用者名稱為mysql。
確定user是否一致。

其次,確定--user=? 所指定的使用者是否有對應的許可權。
若無,則可以chown ?:? -R 對應 $basedir $datadir
或chmod等方法給予對應許可權。

同時確定port是否被佔用 
比如:netstat -atunlp | grep 3306



檢查完上述,若均無問題,基本上mysqld是可以啟動的了。
暫時總結這些,若還有其他可能後續再補齊。


如果已經啟動成功,再次執行
mysqld_safe & 會報錯:
mysqld_safe A mysqld process already exists

當然最好是透過ps -ef | grep mysql來檢查

服務正常啟動之後,便可嘗試mysql client登入mysql server




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1846448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章