전용 서버(CentOS 5.3)가 있고 외부에서 관리자로 mysql에 로그인할 수 없지만 서버의 명령줄에 있을 때는 로그인할 수 있습니다. 나에게 필요한 액세스 권한을 제공하는 설정이 어딘가에 있다고 가정하지만 어디에 있는지 모르겠습니다.
답변1
여러 가지 요인이 있는데, 귀하의 질문에는 어떤 요인에 직면했는지 이해할 만큼 충분한 정보가 포함되어 있지 않습니다.
먼저 서버가 네트워크 포트에서 수신 대기하고 있는지 확인하세요. localhost에 대한 루프백 연결만 허용하므로 듣는 것만으로는 127.0.0.1
문제가 해결되지 않습니다. 너는 들어야 해0.0.0.0
bind-address=0.0.0.0
다음으로 TCP 네트워크를 사용하고 있는지 확인하세요. MySQL은 로컬 소켓만 사용할 수 있으므로 구성에서 다음 줄을 주석 처리해야 합니다.
#skip-networking
완료되면 mysqld 데몬이 수신 대기해야 합니다. 다음과 같이 테스트할 수 있습니다.
# netstat -lntp | grep mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2652/mysqld
(내 예제 출력은 localhost에서만 수신 대기하고 있습니다! 예제 출력은 인터페이스 IP를 사용하여 읽어야 하며 0.0.0.0
그렇지 않으면 작동하지 않습니다.)
마지막으로 mysql 자체에서 올바른 권한을 설정해야 합니다. 각 사용자에게는 연결이 허용된 호스트가 있습니다. GRANT
명령문을 실행 하고 권한만 부여 ON 'localhost'
하거나 이와 비슷한 것을 해도 여전히 원격으로 로그인할 수 없습니다. 허용하려는 특정 호스트나 '%'
호스트를 포함해야 합니다.