V-logue

[mySQL] Error: Access denied for user 'root'@'localhost' (using password: NO) 본문

Error

[mySQL] Error: Access denied for user 'root'@'localhost' (using password: NO)

보그 2022. 7. 1. 17:26

참고로 모든 사례에서 이렇게 해결된다는 것은 아니고,

 이런 경우도 있다는 점을 참고해주면 좋겠다.

 


프로젝트를 진행하던 중 각자의 api를 통합해서

테스트를 해야할 일이 생겼다.

 

repo를 만들어 각자가 로컬에서 테스트하던 api들을 하나로 합치고,

git에서 merge한 다음 테스트를 각자 해보기로 했는데

테스트 중 

Error: Access denied for user 'root'@'localhost' (using password: NO)라는 error가 계속해서

발생하게 됐다.

 

node:events:505
      throw er; // Unhandled 'error' event
      ^

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

문제의 코드는 다음과 같다.

const jwt = require("jsonwebtoken");

const db = require("../config/database");

require("dotenv").config();

로그인을 위해 토큰을 검증하는 미들웨어에서 userId를 조회하기 위해서 쿼리문이 사용됐다.

const jwt = require("jsonwebtoken");

require("dotenv").config();

const db = require("../config/database");

그리고 이건 해결된 코드다.

 

위와 아래 코드의 차이점이 바로 눈에 들어온다

 

바로, dotenv를 잡아주는 코드가 db보다 아래에 있어서

.env에 환경변수로 설정된 변수들을 불러오지 못해서 발생한 에러다.

host와 password를 환경변수로 불러오고 있었으니

 

어찌보면 순서대로 코드가 실행되는게 기본이라고 생각하면

당연한 모습,

 

db를 불러오는 코드를 아래로 옮기고 나니

정상적으로 실행됐다.

Comments