MySQL 로그인 오류 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

Summry

본 문서에서는 mysql에서 옳은 비밀번호를 입력했음에도 불구하고 에러가 발생하는 경우 해결 방법을 정리한다.

send me email if you have any questions.


에러 및 해결(version 8 이하)

(28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

위와 같은 에러를 만나는 경우 비밀번호 초기화를 시도한다.

먼저 mysql -u root 로 비밀번호 없이 mysql에 접속한 후 USE user; 명령으로 user table을 선택한다.
그 후,

mysql> UPDATE user SET password=password("1234") WHERE user = 'root';
mysql> flush privileges;

위의 과정을 수행하면 비밀번호를 재설정 할 수 있다. 만약, 비밀번호를 초기화하는 과정에서

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the 
right syntax to use near (1234) where user = root at line 1

와 같은 에러가 발생한다면 아래의 방법을 사용하자.

에러 및 해결(version 8 이상)

alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';

mysql은 버전에 따라 옳은 커맨드를 입력해도 구문 오류가 반환될 수 있기 때문에 다른 version 8 이상은 위의 명령을 사용한다.

Reference

https

[mySQL8] 로그인 오류 해결방법 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) / ERROR 1064 (42000) - Jamie
[MySQL] mysql로그인 오류 / mysql 비밀번호 재설정 - 지나가는 이야기