mysqldはテストファイルを作成できないため、errcode:13を返します。

mysqldはテストファイルを作成できないため、errcode:13を返します。

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 にアクセスできないためです (これは syslog で確認できます)。

  • mysqld を root として起動すると成功します (理由はわかりません)

答え2

mysqld は mysql ユーザーとして実行する必要があります。デーモンを手動で実行しないでください。次のようにサービスとして起動する方がよいでしょう。

sudo service mysql start

エラー メッセージは、mysql サービスが、ユーザー環境でアクセスを許可されていない特定のファイルにアクセスできないことを示しています。したがって、この動作は正しいはずです。ただし、ディレクトリが存在するかどうか、誰がディレクトリを所有しているか、誰がディレクトリにアクセスできるのかを確認する必要があります (このためには ls -la を使用します)。

ls -la  /var/lib/
ls -la  /var/lib/mysql

関連情報