너무 힘들었다. 도커로 cicd 구축할떄부터 마주했던 애러였다. 도커는결국 RDS로 못쓰고, EC2 내에 mysql을 설치해서 EC2내부 mysql 주소 와 비밀번호, user: root 로 접속하니 잘 되었다.
그런데 나는 RDS를 사용하고 싶었다. 플리보따리 에서 cicd 구축할때는 해당 오류가 나오지 않았는데 왜이런지 모르겠다.
해당 오류를 해결한다고 장장 20시간이 넘게 걸린거 같다.
너무 힘들었지만 끝까지 포기하지않고 온갖 자료,블로그를 100개는 본거 같다.
드디어 해냈다.
해당 오류는 EC2에 CodeDeoploy로 인해서 jar 파일이 실행된 뒤, 스프링 실행로그를 확인해서 나왔다.
애러의 실마리 : 설마하는 마음에 DB의 User를 새로 생성하니 애러 코드가 조금 바뀐걸 알수 있었다.
그로 인해서 생성한 USer에 DB 스키마에 대한 권한을 부여하면 되겠다는 생각이 들었다. 결국 해당 방법으로 성공했다.
결론은 Mysql의 사용자(User)를 추가해주고, 해당 사용자에게 권한을 부여하면 된다.
단, 모든 권하을 추가하면 안된다. 이유를 모르겠지만, 모든 권한을 부여하려는 명령어
을 사용하니 또 AccessDenied 가 떴다.
그래서 일단 User를 생성한뒤에, 권한을 수정하는 방식으로 해야한다.
여기를 클릭한 다음에 권한을 +버튼을 눌러서 추가한 다음에, Create,Delete,Insert,Select ,Alter 권한을 추가해주면 된다.
이렇게 권한을 추가하면 EC2 내에서 RDS 가 연결되어있는 정보가 application.yml에 존재 하더라도 AccessDenied 오류가 나지 않고, 해당 정보로 그대로 RDS에 접속하여 스프링이 실행된다.
진짜 중간에 포기하고 싶었지만, 눈알빠져라 봤던거 같다. 이번경험을 통해 어떤 애러가 와도 해결할수 있겠다는 자신감을 얻었다.