2008年1月10日

解決啟動MySQL 時,mysqd.log出現Can't create test file 的問題

在CentOS5使用RPM安裝的MySQL,在啟動服務時一直失敗,在/var/log/mysqld.log裡有這下列訊息
080110 16:47:12 [Warning] Can't create test file /var/lib/mysql/server.lower-test
^G/usr/libexec/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)

查看/var/log/messages時,出現如下訊息
Jan 10 23:06:33 server setroubleshoot: SELinux is preventing the /usr/libexec/mysqld from using potentially mislabeled files (dungying.lower-test). For complete SELinux messages. run sealert -l 6ac919fd-8675-49ca-a95a-291760d4cede

把/etc/sysconfig/selinux裡的SELINUX設定成 disable 後重開機還是有相同的狀況,姑且照著messages裡的訊息
執行 sealert -l 6ac919fd-8675-49ca-a95a-291760d4cede 查看 SELinux 的完整訊息,跟著 Allowing Access 的建議,在 /etc/init.d/mysqld 的 start function裡加上建議的值就可以成功的執行了。