2010-07-15 3 views
6

연결할 수 있습니다 (28000)를MySQL의 권한은 지역에서 거부하지만 난 명령을 통해 (ssh를 통해) 원격 서버에 내 MySQL 데이터베이스에 연결하려고 원격

mysql -u me -h mydomain.com -p 

을하지만 그것은 오류 1045 실패 : 사용자에 대한 액세스가 거부 .. 오류

mysql -u me -h localhost -p 

작동하는 동안

이제는이 데이터베이스에 대한 사용 권한이 % 사용자 나 me 사용자의 모든 호스트에 대해 설정되어 있기 때문에 권한을 설정하지 않았기 때문에이 작업이 완료되지 않았습니다.

이것은 동일한 사용자를 사용하여 로컬 시스템에서 서버로 올바르게 연결할 수 있음을 입증합니다. 즉 내 로컬 컴퓨터에서 다음 명령을 실행하면 작동합니다.

내 질문에 왜 그런 일이 일어나고 어떻게 해결할 수 있습니까? 어떤 호스트의 연결을 허용하도록 권한이 설정되어 있어도 localhost 대신 도메인 이름을 사용할 때 내 서버에서 내 mysql 서버에 연결할 수없는 이유는 무엇입니까?

답변

16

MySQL이 허가 허가를 처리하는 방식 때문에 이러한 현상이 발생합니다. 원격 호스트에서 연결하는 경우

(또는 외부 IP를 통해 로컬 호스트에서), 그것은 [email protected]% 항목을 ( 경우 사용중인 특정 호스트에 대한 구체적인 보조금이 없다!)와 일치합니다. 그러나 루프백 인터페이스 ("localhost"IP) 또는 소켓을 통해 연결하면 [email protected] 권한이 사용됩니다. 따라서 두 개가 있어야합니다. GRANT PRIVILEGES; 하나는 [email protected]이고 다른 하나는 [email protected]%입니다.