데이터베이스를 표시할 때 MySQL 권한 오류

데이터베이스를 표시할 때 MySQL 권한 오류

나는 홈브류를 설치하려고 했는데 매우 어리석게도 다음과 같이 했습니다.

sudo chown -R $USER /usr/local

Homebrew 지침에는 이렇게 하라고 되어 있는데 저는 시스템 관리자가 아니기 때문에 그 말을 그대로 받아들였습니다. 배운 교훈(실제로 이것을 테스트하는 방법은 모르지만...여기서는 "실행 취소" 스크립트가 매우 유용할 것 같습니다)

어쨌든 모든 작업은 완료되었지만 이제 다음 오류가 발생합니다.

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 548
Server version: 5.1.33 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

나는 아무 소용없이 루트로 다시 chown-ing을 시도했습니다. mysql을 다시 설치하지 않고 이 문제를 해결할 수 있는 방법을 아는 사람이 있습니까? 선택적으로 mysql을 다시 설치해야 하는 경우 모든 데이터가 손실되지 않도록 명령줄에 액세스하지 않고 데이터베이스를 덤프하려면 어떻게 해야 합니까?

감사해요!

답변1

mysql의 데이터 디렉터리를 찾아 MySQL의 사용자(일반적으로 mysql:mysql)에게 권한을 부여합니다.

답변2

mysql이 어떤 사용자로 실행되고 있는지 확인하고(저는 를 사용하겠지만 ps aux |grep mysqlps에 대한 플래그는 다를 수 있음) mysql이 설치된 위치를 찾습니다(광산은 ps 결과에 로 표시되지만 --datadir=/usr/local/mysql/data잘리지 않도록 화면이 충분히 넓어야 할 수도 있습니다 ) 명령)을 선택한 다음 소유권을 올바른 사용자로 다시 변경합니다.

답변3

$ cd /usr/lcoal/mysql/

$ ls -l

$ sudo -R chown mysql:mysql data/

data//usr/local/mysql/모든 데이터베이스가 포함된 디렉토리입니다 .

이제 하세요 mysql -u user -p password. 당신은 당신의 데이터베이스에 액세스할 수 있습니다

관련 정보