mysql 사용자에게 /var/lib/mysql에 대한 액세스 권한이 있어야 합니까?

mysql 사용자에게 /var/lib/mysql에 대한 액세스 권한이 있어야 합니까?

먼저, mysql이 머신에서 잘 돌아가고 있는 것 같다고 말씀드리겠습니다. 그럼에도 불구 su mysql하고 나와 의 경우 ls /var/lib/mysql내 액세스가 거부됩니다 . 내 데이터베이스 테이블에 해당하는 데이터 파일을 보면 sudo ls /var/lib/mysql이는 mysql의 데이터 폴더임에 틀림없습니다.

mysql 사용자가 자신의 데이터 폴더에 액세스할 수 없어야 합니까? 기계가 잘못 구성되어 있습니까?

자세한 내용은:

$ sudo ls -la /var/lib/ | grep mysql
drwx------  5 mysql     mysql   4096 2011-06-25 08:05 mysql
$ sudo su mysql
$ ls /var/lib/mysql
ls: cannot open directory /var/lib/mysql: Permission denied
$ sudo ls -la /var | grep lib
drwxr-xr-x 42 root root  4096 2011-03-17 12:03 lib
$ sudo ls -la / | grep var
drwxr-xr-x 14 root root  4096 2010-12-02 19:14 var
$

답변1

테스트에 일종의 버그가 있습니다. 데몬이 올바르게 작동한다는 사실은 사용자가 mysql폴더를 읽을 수 있다는 것을 증명합니다. show 의 출력으로서 ls그것은 정확히 에 속합니다 mysql. 실제로 사용자라면 mysql읽는 데 문제가 없을 것입니다.

나는 당신 su이 실패했다고 생각합니다. 아마도 mysql사용자에게 쉘이 없기 때문일 것입니다. 체크인할 수 있지만 /etc/passwd로 설정되어 성공 /bin/true했지만 su즉시 종료되고, 실행하면 ls사용자로 실행됩니다. 시도 sudo -u mysql ls -al /var/lib/mysql해봐.

다음 번에는 당신이 정말로 당신이 생각하는 사람인지 확인해 보세요 whoami. 이는 현재 사용자 이름이 일반적으로 PS1 프롬프트의 일부인 이유 중 하나입니다. 위의 복사/붙여넣기를 편집하지 않은 경우 쉘 프롬프트에 귀하가 누구인지 표시되지 않습니다.

관련 정보