체인의정석

에러해결) Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES) 본문

개발/database

에러해결) Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)

체인의정석 2021. 9. 9. 16:04
728x90
반응형

knex를 써서 db를 마이그레이션 하는 과정에서 다음과 같은 에러가 났다.

Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)

 

관리자 비밀번호 재설정, 이때 비밀번호 설정이 잘못되어서 오류가 났었다.

mysql> grant all privileges on *.* to 'root'@'localhost' identified by password '1234';
ERROR 1827 (HY000): The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.
mysql> grant all privileges on *.* to 'root'@'localhost' identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

그리고 나서 다음 명령어로 확인까지 해준다.

mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.01 sec)

하지만 여기서는 그게 문제가 아니였다.

 

npm script를 본 결과

https://www.npmjs.com/package/knex-automigrate

 

knex-automigrate

Table schema based database migration tool, built on top of the knex.js

www.npmjs.com

knex를 이용한 db migration을 하는것을 알 수 있었다.

 

knex.config.js 파일을 보니 db password가 제대로 설정되어 있지 않았고

그래도 같은 에러가 나서

env파일을 봤더니 env 파일에서도 비밀번호가 설정되어 있었다.

 

한마디로 knex.config.json에서는 설정값이 덮여씌워지기 때문에 env파일을 고치지 않아서 난 에러였다.

 

이번 에러를 해결하며 얻은 교훈은 환경설정 값을 아무리 바꿔도 에러가 계속 나면 config 파일이나 env파일을 다시 한번 체크해보자 정도인것 같다.

728x90
반응형
Comments