PROJECT/도서 추천 서비스 | CHURY

VS Code runserver 오류 / django.db.utils.OperationalError: (1045, "Access denied for user 'user'@'localhost' (using password: NO)")

콩세 2023. 3. 27. 22:57

학원 노트북을 쓰다가 과정이 끝나고

내 개인 노트북으로 개발 프로그램을 설치하고 프로젝트를 run 하는 과정에서 발생한 오류이다.

 

 

평소와 같이 VS Code에서 python 가상환경을 통해

py manage.py runserver 명령어를 입력해 서버를 실행시켰다

 

뭐라뭐라뭐라 길게 오류가 뜨는데 가장 아래를 보면

 

django.db.utils.OperationalError: (1045, "Access denied for user 'user'@'localhost' (using password: NO)")

 

구글링해보니 나는 'user'@'localhost'로 나왔지만

보통 'root'@'localhost'로 뜨고, mysql root계정 비밀번호와 관련된 로그인 오류였다.

 

using password: No => 사용자의 비밀번호가 없을 경우 나타나는 오류

using password: Yes => 사용자의 비밀번호가 틀렸을 경우 나타나는 오류

 

 

처음에는 비밀번호가 없어서 나타나는 오류인가 싶었다.

하지만 나는 root계정 생성할때 분명히 password를 설정했고,

실제로 비밀번호도 입력해서 들어간다.. 그리고 그 비밀번호도 맞고..

 

가장 이상한 점은

root계정을 잘 만들어뒀는데 왜 내 powershell에는 

'user'@'localhost'라고 뜨는건지..

user계정은 만들지도 않았는데ㅜ

 

내가 모르는 사이 저절로 만들어졌나 싶어서

MySQL Command Line Client를 실행해서

확인해 보면 역시나 root는 있지만 user는 없다.

 

전에는 한번도 이런 오류가 뜬 적이 없고,

다른 팀원들도 노트북을 바꿔서 새로 프로그램을 설치했는데 오류없이 잘 실행되었다고 했다.

 

VS Code나 MySQL을 설치할때 뭔가를 빼먹었나 싶어서 두 프로그램 모두 지우고 다시 설치했는데도

오류가 해결되지 않았다.

 

그리고..설마설마 오류에 뜨는 user가 전체 계정을 통틀어서 부르는 그 user인가 싶어서 

프로젝트 cnf파일을 settings.py 파일을 확인해보았다.

우리 프로젝트의 경우 database관련 세부 설정을 settings.py에서 바로 입력한 것이 아니라

my.cnf 파일을 만들어서 거기에 입력하고, 연결해서 사용하고 있었다.

 

이런식으로!

 

여기에서 

user = root 부분이 연결이 되지 않아서 계속 오류가 발생하나 싶어서

cnf파일 연결한 것을 지우고 settings.py에 직접 입력해보았다.

 

설마 이거 하나 바꿨다고 될까 싶었는데 일단 다시 runserver를 해보니..

 

진짜 돼 버리기 있냐...

기쁜데 허무한 느낌...

이 오류 하나로 하루를 날렸다...💦

 

아직도 모르겠는건 원래는 따로 cnf파일 빼서 연결해도 잘 되었다는거,..

그리고 아직도 다른 팀원들은 잘 된다는거..

하지만 내 노트북에서는 settings.py에 직접 작성해야 된다는거..

 

아무튼 해결👏🏻