![mysqld 給出 errcode:13 因為它無法建立測試文件](https://rvso.com/image/1036656/mysqld%20%E7%B5%A6%E5%87%BA%20errcode%3A13%20%E5%9B%A0%E7%82%BA%E5%AE%83%E7%84%A1%E6%B3%95%E5%BB%BA%E7%AB%8B%E6%B8%AC%E8%A9%A6%E6%96%87%E4%BB%B6.png)
11.04 的新安裝。然後我按照這裡的所有說明進行操作: http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-ubuntu-11.04-lamp
現在,當我運行 mysqld 時,出現以下錯誤:
makara@rahu:~$ mysqld
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
111103 13:39:37 [ERROR] Aborting
111103 13:39:37 [Note] mysqld: Shutdown complete
IRC 上有人說這可能是軟體包問題?
謝謝甜菜
答案1
從 Oneiric 升級到 Precise(將 MySQL 從 5.1 升級到 5.5)後,我遇到了同樣的問題。
就我而言,問題是
/etc/apparmor.d/local/usr.sbin.mysqld
丟失了,儘管它包含在
/etc/apparmor.d/usr.sbin.mysqld
預設情況下。一個簡單的
sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
為我解決了這個問題。
對於那些搜尋者:保存有趣資訊的日誌檔案是/var/log/upstart/mysql。 /var/log/mysql(*|/*) 中不會有任何內容
您看到的可能包括:
sudo service mysql start
結果是開始:作業啟動失敗
手動嘗試
mysqld
以普通用戶身份啟動將像往常一樣失敗(在上述問題出現之前),因為該用戶無權訪問 /var/lib/mysql(這可以在系統日誌中找到)。以 root 身分啟動 mysqld 會成功(我不知道為什麼)
答案2
mysqld 應該以 mysql 使用者身分執行。您不應該手動執行守護程序。最好將其作為服務啟動,如下所示:
sudo service mysql start
該錯誤訊息指出 mysql 服務無法存取某些在您的使用者環境中不應被允許存取的檔案。所以這種行為應該是正確的。但是,您應該檢查目錄是否存在以及誰擁有它們以及誰有權訪問它們(為此目的使用 ls -la ):
ls -la /var/lib/
ls -la /var/lib/mysql