DBAtlas · 데이터베이스 운영 아틀라스

1045: Access denied for user (using password: YES/NO)

MySQL

의미

사용자 이름, 비밀번호 또는 접속하는 호스트에 대한 인증이 실패해 로그인이 거부되었다.

원인

잘못된 비밀번호, 접속하는 호스트(user@host)에서의 권한 없음, 계정이 존재하지 않음, 인증 플러그인 불일치(caching_sha2_password vs mysql_native_password), 또는 연결 문자열의 오래된 자격 증명.

해결 방법

사용자와 호스트 매칭을 확인한다: SELECT user, host, plugin FROM mysql.user. 올바른 호스트에 권한을 부여한다(예: 'app_user'@'%'). 비밀번호를 재설정한다: ALTER USER 'app_user'@'host' IDENTIFIED BY 'new_password';(ALTER USER/GRANT는 즉시 적용되며, FLUSH PRIVILEGES는 grant 테이블을 DML로 직접 수정한 경우에만 필요하다). 'using password: NO'가 보이면 클라이언트가 비밀번호를 전혀 보내지 않는 것이다. 플러그인 불일치는 인증 플러그인을 검토한다: MySQL 8.4에서는 mysql_native_password 플러그인이 기본적으로 비활성화되어 있다(--mysql-native-password=ON일 때만 로드). 이 플러그인을 사용하는 오래된 계정과 오래된 클라이언트는 접속할 수 없다. ALTER USER ... IDENTIFIED WITH caching_sha2_password BY '...';로 계정을 마이그레이션하고 클라이언트 드라이버를 업그레이드한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목