제안된 질문을 많이 살펴봤지만 관련 답변을 찾지 못했다는 점을 먼저 말씀드리겠습니다. 제가 하고 있는 일은 다음과 같습니다.
Amazon EC2 인스턴스에 연결되어 있습니다. 다음 명령을 사용하여 MySQL 루트 사용자에 로그인할 수 있습니다.
으아악그런 다음 % 호스트로 새 사용자 청구서를 생성했습니다
으아악사용자 청구서에 모든 권한 부여:
으아악그런 다음 루트 사용자로 로그아웃하고 bill 사용자를 사용하여 로그인을 시도했습니다:
으아악올바른 비밀번호를 입력하면 다음 오류가 나타납니다.
오류 1045(28000): 사용자 "bill"@"localhost"에 대한 액세스가 거부되었습니다(비밀번호 사용: YES)
해 보세요:
으아악익명 사용자
''@'localhost'
或''@'127.0.0.1'
가 있을 수 있습니다.Manual에 따르면:
따라서 이러한 익명 사용자는 연결 시
'[any_username]'@'%'
在从localhost
와 같은 다른 사용자를 "차단"합니다.'bill'@'localhost'
匹配'bill'@'%'
,但会在之前匹配(例如)''@'localhost'
.권장되는 해결 방법은 이 익명 사용자를 삭제하는 것입니다(일반적으로 좋은 생각입니다).
아래 편집 내용은 대부분 주요 질문과 관련이 없습니다. 이는 이 스레드의 다른 댓글에서 묻는 질문 중 일부에 대한 답변일 뿐입니다.
편집 1
소켓을 통해
으아아아'bill'@'%'
로 인증합니다.편집 2
네트워크를 다시 활성화하고 이제 익명 사용자를 생성했다는 점을 제외하면 정확히 동일한 설정입니다
으아아아''@'localhost'
.편집 3
편집 2와 동일한 상황으로 이제 익명 사용자에게 비밀번호를 제공합니다.
으아아아결론 1, 편집 1: 인증
'bill'@'%'
은 소켓을 통해 가능합니다.결론 2, 편집 2: TCP를 통해 연결하는지 소켓을 통해 연결하는지 여부는 인증 프로세스에 영향을 주지 않습니다(소켓을 통해
'something'@'localhost'
이외의 다른 사용자에게 연결할 수 없는 것 제외).결론 3, 편집 3에서:
-ubill
을 지정했는데도 익명 사용자로 액세스 권한이 부여되었습니다. 이는 위에서 제안한 "순서 규칙" 때문입니다. 대부분의 기본 설치에는 비밀번호가 없는 익명 사용자(보안/제거 필요)가 있다는 점에 유의하세요.