본문 바로가기

Server/PHP

[Laravel][Error] SQLSTATE[HY000] [1045] Access denied for user

새 프로젝트 작업에 들어갔고, 서버단 개발환경을 만들어놓고 있는데 처음에는 서버 연결에 애를 먹더니

(post형 라우팅이 안 됐었음,, ) 지금은 DB연결이 안되고 있다. Access denied가 뜨는거 보면 아무래도 권한문제인 것 같은데 서버를 내가 구축하는게 아니라서 뭐 로컬에서 할 수 있는 방법을 해봐도 답이 없네..

 

일단 해결하면 글 업데이트 하는걸로..

+) 현재 .env 파일에 DB_DATABASE, DB_USERNAME, DB_PASSWORD ...  등 바꾸기로 시도해봤으나 FAIL..

찾아보면 다 .evn파일 얘기만 하던데 소용이 없네, 서버도 다시 시작했는데 음..

 ++) 서버 문제는 POST로 넘겨줄 때 MethodNotAllowedHttpException 에러가 발생했던건데, url로 치고 들어가면 오류 나는건 뭐 원래 그러는 것 같음. 일단 axios로 값을 넘겨줄때 나는 오류는 잡았다.

워낙 이것저것 시도해봐서 정확히 뭐 때문에 해결이 된건지는 확실하지 않은데 서버 폴더 내 app/Http/Kernel.php 파일을 조금 수정한게 맞았던 것 같음. middlewareGroups 내 web 배열안에 VerifyCsrfToken클래스 코드 주석처리 하니까 되던데 (미들웨어 위치를 바꿔보라? 뭐 그런 해결법이었던 것 같음) 미들웨어.. 랑 그런 개념이 부족하니까 답이 없네ㅠ

시간 나면 이것도 공부해 보는걸로..

 

해결)

와 진짜 화날뻔.. 다들 .evn 설정을 바꾸라는 말만 하던데 나는 bootstrap/cache/config.php 파일 내에 설정되어있는 mysql.. 등 DB연결 데이터가 문제였다. 애초에 서버에서 받을때부터 비밀번호 설정이 잘못돼있었음.. 비밀번호가 다르니까 Access denied가 그렇게 떴던거고.

이걸 캐치한게 아무리 .evn파일을 바꿔도 안되길래 혹시 하고 username부분도 바꿔서 디버깅을 해보는데 어라 에러코드에 유저네임도 안 바뀜?? 해서 찾아보니까 여기 설정이 더 있을 줄 누가 알았냐..