MySQL伺服器突然不能啟動,檢視最後的啟動日誌如下:
080825 09:38:04 mysqld started
080825 9:38:04 [ERROR] Can't start server : Bind on unix socket: Permission denied
080825 9:38:04 [ERROR] Do you already have another mysqld server running on socket: /var/mysql.sock ?
080825 9:38:04 [ERROR] Aborting
080825 9:38:04 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
080825 09:38:04 mysqld ended
f 配置如下:
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[safe_mysqld]
err-log=/usr/local/mysql/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
根據日誌檔案顯示,首先檢查執行許可權,再看一下/var/mysql.sock,發現/var/mysql.sock目錄下並沒有該檔案,是否是沒有許可權 寫/var目錄?OK,那就用root使用者執行一下safe_mysqld,啟動正常。使用mysql連線資料庫,提示錯誤,連線不到資料庫伺服器, /tmp目錄下沒有mysql.sock這個檔案,到這裡,基本清楚了Mysql客戶端和伺服器端在本機的通訊方式了,通過一個名為mysql.sock 檔案來進行初始化通訊的,因此該檔案所存放的目錄必須雙方都有許可權可以訪問到,而且伺服器在啟動時需要寫該檔案,如果f中這兩項配置不正確,就 會出現Permission denied等類似錯誤。將配置檔案修改如下,就沒有問題了。
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[safe_mysqld]
err-log=/usr/local/mysql/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
如果還是不行,那就需要 chmod 777 /tmp