Error기록 노트/PHP | Laravel

php artisan migrate 오류 해결 Illuminate\Database\QueryException SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

에러노트 2022. 10. 31. 23:15

오늘은 홈스테드와 베이그런트를 사용하여 DB를 구축하던 중 6시간 동안 서치하고 삽질한 끝에 찾아낸 해결방법을 가져왔습니다. 혹여나 저처럼 homestead나 vagrant ssh를 통해 터미널(혹은 git bash) 연결을 하여 php를 사용하는 경우, 1045 에러를 해결하는 연결방법을 설명드릴 터이니 참고가 되시길 바랍니다. 여러분의 시간은 소중하니까요 :D

저의 에러 상황 재현

더보기

 

먼저 당시의 제 오류 상황을 재현 해보자면, 권한 부여를 확인 후

권한 부여 설정을 확인 후 databases를 조회하는 부분.(cmd이기에 로컬컴퓨터의 mysql)

database.php와 .env에 로컬에서의 mysql 기준으로 셋팅 하였습니다. (네, 바로 이게 문제였습니다..ㅎㅎ)

database.php에서는  51행~53행을 수정하였으나 여전히 오류가 나는 부분입니다.

하지만 오류는 여전하였고, 알고 보니 Homestead를 사용하는 경우, 이쪽 세팅의 문제가 아님을 알게 되었습니다.

서치해보면 환경이 다른 케이스가 많았습니다. 대부분 php를 따로 설치하셨고, shell을 쓰는 케이스였으며, Mac/Linux인 경우가 많죠. 저희는 window용으로 편하게 사용하기 위해 Homestead를 설치하였던 것이기에 해결 방법이 조금 다릅니다.


해결방법

우선, 이렇게 2개의 파일을 수정하는 점에서는 동일합니다.

  • database.php
  • .env

라라벨 코리아에서 답을 찾을 수 있었습니다. 아래 링크를 통해 더 자세한 설명을 알 수 있습니다. (웬만한 설정 방법에 관한 내용은 이곳에서 찾을 수 있었기에 추천드립니다. 디스코드의 질문 게시판도 추천!! 🤗)

https://laravel.kr/docs/8.x/homestead#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0

 

라라벨 8.x - 홈스테드

라라벨 한글 메뉴얼 8.x - 홈스테드

laravel.kr

사이트의 내용을 참고하여 이제 오류를 해결해봅시다.

.env 에서 14행~16행를 수정해줍니다.

.env을 재수정하는 부분

database.php도 마찬가지로 51행~53행을 다시 설정하고,

해당 부분 수정 후 정상적으로 migrate이 실행된 것을 아래 터미널에서 확인할 수 있습니다.

오류 하나를 해결하고 나니 정말 속이 후련하네요ㅎㅎ 이제 마음껏 DB를 구축할 수 있습니다 휴.... 다른 분들께서는 시간 단축이 많이 되셨길 바랍니다!

잘못 설명된 부분이나 피드백할 점이 있다면 언제든 댓글로 남겨주시면 감사하겠습니다.  :)


+) 여담

제가 지금 구현 중인 부분은 MVC 패턴으로 게시판을 만들기 위한 DB 생성 단계입니다. 나중에 완성하게 되면 오류가 아닌 완성본으로 공부한 개념 설명과 함께 찾아오도록 하겠습니다. java와 유사한 점도 있고, 굉장히 편리한 점도 있어 여러모로 재미있게 공부 중입니다.