標籤:mysql
情境:在遷移mysql5.5.25a資料目錄(從/var/lib/mysql遷移至/data)後,無法啟動資料庫,執行service mysql start,提示pid無法更新,新舊資料目錄下的錯誤記錄檔均無任何資訊。此時,沒有太多mysql使用經驗的同事估計已經傻眼了。
類似問題如何排查呢?
這裡有個小技巧:
可以稍微改下/etc/init.d/mysql(先備份),裡面的
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
把裡面的>/dev/null刪掉,這樣子執行service mysql start就會有提示資訊了,提示下面的東西:
touch: cannot touch `/data/localhost.err‘:Permission denied
chmod: cannot access `/data/localhost.err‘:Permission denied
touch: cannot touch `/data/localhost.err‘:Permission denied
chown: cannot access `/data/localhost.err‘:Permission denied
mkdir: cannot create directory `/data‘:File exists
chown: cannot access `/data‘: Permissiondenied
chmod: cannot access `/data‘: Permissiondenied
我們明明已經改了新資料目錄/data的屬主屬組了啊,為何提示沒許可權。有linux使用經驗的很容易聯想到是selinux在做怪,果然,執行setenforce 0後mysql就正常啟動了,虛驚一場。
本文出自 “記憶片段” 部落格,請務必保留此出處http://weikle.blog.51cto.com/3324327/1792101
mysql不能啟動問題分析的一個小技巧