먼저, 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 프롬프트의 일부인 이유 중 하나입니다. 위의 복사/붙여넣기를 편집하지 않은 경우 쉘 프롬프트에 귀하가 누구인지 표시되지 않습니다.