轉自:http://www.coderbolg.com/content/87.html
當安裝好mysql後,啓動:/etc/init.d/mysql start 卻報了個錯:Starting MySQL..Manager of pid-file quit without updating f[失敗]) 。下面是我對報錯的解決方法總結,我在許多環境下安裝過mysql,由於多種原因會報各種錯誤,現在做個總結以作備查。
一、查看報錯日誌
報錯日誌是我們解決問題的方向燈,沒有方向燈我們就沒了方向。我有次安裝時報錯日誌裏就有這樣的錯誤:
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory。很明顯是缺少了庫文件 libstdc++.so.5 。這時我們搜索和libstdc相關的包安裝即可。
二、也許是selinux惹的禍
如果是centos系統,默認會開啓selinux,這個時候可以先關閉它,打開/etc/selinux/config,把SELINUX=enforcing改爲SELINUX=disabled後存盤退出重啓機器試試。
三、殘餘數據
也有可能是第二次在機器上安裝mysql,有殘餘數據影響了服務的啓動,去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。
四、確定數據目錄的權限
數據目錄一般是<prefix>/data,檢查一下它的歸屬,如果不是mysql所有者,一般安裝mysql時都會創建mysql的用戶和組的,這時要修改一下用戶和組:
chown -R mysql:mysql /var/data
五、沒有指定數據目錄
mysql在啓動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)。如果沒有請在[mysqld]下設置這一行:
datadir = /usr/local/mysql/data
六、還有mysql進程在跑着
如果這是第二次在機器上安裝mysql就極有可能會出現這種情況的,這時系統上很有可能還有mysql進程在運行着。可以執行下列命令查看:
ps -ef | grep mysql
如果出現的結果不止一行的就趕快把它kill掉吧。
七、skip-federated字段在作祟
可以檢查一下/etc/my.cnf文件中有沒有沒被註釋掉的skip-federated字段,如果有就立即註釋掉吧。
八、出錯日誌目錄不存在
也有可能你現在還不知道mysql的出錯日誌在哪裏吧?這時你可以執行命令查看:
cd mysql/bin ./mysql_safe
這時一定會報錯的, 並在錯誤中顯示將錯誤寫在某某目錄的某某文件裏了,這裏檢查一下這個目錄和文件是否存在,在的話就按日誌指示解決,如果沒有的話就要創建目錄並修改權限和歸屬了。一般會是/var/lib/mysql/mysql.error,注意mysql.error不用創建的。
cd /var/lib mkdir mysql chmod 777 mysql chown mysql:mysql mysql