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에서 MySQL을 5.1에서 5.5로 업그레이드하는 Precise로 업그레이드한 후에도 동일한 문제가 발생했습니다.

내 경우에는 그게 문제였어.

/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를 루트로 시작하면 성공할 것입니다(이유는 모르겠습니다).

답변2

mysqld는 mysql 사용자로 실행되어야 합니다. 데몬을 수동으로 실행하면 안 됩니다. 다음과 같은 서비스로 시작하는 것이 좋습니다.

sudo service mysql start

오류 메시지는 mysql 서비스가 사용자 환경에서 액세스가 허용되지 않아야 하는 특정 파일에 액세스할 수 없음을 나타냅니다. 따라서 이 동작은 정확해야 합니다. 그러나 디렉토리가 존재하는지, 누가 이를 소유하고 누가 액세스할 수 있는지 확인해야 합니다(이 목적을 위해서는 ls -la 사용).

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

관련 정보