찾다

 >  Q&A  >  본문

MySQL에 액세스할 수 없습니다. 오류 코드 1045(28000): 사용자 'bill'@'localhost'에 대한 액세스가 거부되었습니다(비밀번호 사용: yes).

제안된 질문을 많이 살펴봤지만 관련 답변을 찾지 못했다는 점을 먼저 말씀드리겠습니다. 제가 하고 있는 일은 다음과 같습니다.

Amazon EC2 인스턴스에 연결되어 있습니다. 다음 명령을 사용하여 MySQL 루트 사용자에 로그인할 수 있습니다.

으아악

그런 다음 % 호스트로 새 사용자 청구서를 생성했습니다

으아악

사용자 청구서에 모든 권한 부여:

으아악

그런 다음 루트 사용자로 로그아웃하고 bill 사용자를 사용하여 로그인을 시도했습니다:

으아악

올바른 비밀번호를 입력하면 다음 오류가 나타납니다.

오류 1045(28000): 사용자 "bill"@"localhost"에 대한 액세스가 거부되었습니다(비밀번호 사용: YES)

P粉885562567P粉885562567435일 전643

모든 응답(2)나는 대답할 것이다

  • P粉186904731

    P粉1869047312023-09-18 07:57:18

    해 보세요:

    으아악

    회신하다
    0
  • P粉287345251

    P粉2873452512023-09-18 00:36:21

    익명 사용자''@'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을 지정했는데도 익명 사용자로 액세스 권한이 부여되었습니다. 이는 위에서 제안한 "순서 규칙" 때문입니다. 대부분의 기본 설치에는 비밀번호가 없는 익명 사용자(보안/제거 필요)가 있다는 점에 유의하세요.

    회신하다
    0
  • 취소회신하다