[GreenLog] AWS RDS 퍼블릭 액세스 허용 안 함, springboot 연결

0woy·2024년 10월 1일
0

개발

목록 보기
4/4
post-thumbnail

하나 고치면 하나 에러 터져서 걍 모음집 맹글기

에러 1

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

패킷 보냈는데 driver가 서버로 부터 아무 패킷도 못 받았다고 함.
있었는데 없어졌어요

구글링 해서 mysql 설정을 바꿔주면 된다고 해서 바꿔줬지만 그래도 여전.
mysqld.conf 설정 참고 게시글


에러 2

Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to open JDBC Connection for DDL execution

그런데 이런 에러 로그도 있길래 바로 구글링 때려벌임

변경 전 spring.jpa.hibernate.ddl-auto=create
변경 후 spring.jpa.hibernate.hbm2ddl.auto=create

이래 변경하고 실행하면,

실행이 됨


에러 3

RDS와 제대로 연동이 됐는지 봐야하니까 정보 입력하고 회원가입 버튼 눌렀더니 하단의 에러 폭발

java.net.ConnectException: Connection timed out: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549) ~[na:na]

스프링에서 데이터베이스 접근하여 접속을 기다리다가 뱉는 타임아웃 에러라고 한다.

에러 원인으로 spring.datasource.url이 RDS 엔드포인트로 되어있어서 그런가? 라는 생각이 들었다.
돈 내기 싫어서 퍼블릭 액세스 허용을 안 해뒀거든요..

저번 게시글에 ec2 -> rds 접속까지 했는데
springboot -> ec2 -> rds는 도당체 멀까.. 라고 생각하면서 오랜 친구인 gpt를 찾아갔다.

나: springboot에서 ec2를 통해 rds로 터널링 하고싶음, 근데 나 putty 써.
gpt: 내가 전에 만든 putty ssh 터널 설정 하고 나서 properties 설정 ㄱㄱ

datasource.url에서 rds 엔드포인트가 아닌 localhost라는 점!


에러 4

Access denied for user 'groot'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.3.0.jar:8.3.0]

새로운 에러 발생.. 오히려 좋아. groot 사용자가 localhost 접근 권한이 없는듯

내 db 사용자에 groot는 있지만 host가 localhost는 아니라서 새로 맹글어줌

CREATE USER 'groot'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'groot'@'localhost';
FLUSH PRIVILEGES;

비밀번호는 알아서..

그런데 문제가 생겼다. 이미 3306 포트로 로컬 db가 있는데, rds에 저장되는 게 아니라 이 로컬에 저장이 돼버리는 사태;;

그래서 putty 수정했어요.

기존에 있던 forwarded ports 지워주고, Source port를 3307로 바꿔서 다시 저장했다.
그리고 .properties 파일에 localhost:3306 -> localhost:3307로 포트 번호 같이 변경해 주었다.


실행했더니 이제 저장도 잘 된다. 더이상 에러가 발생하지도 않고.. 정말 행복하다.

이렇게 local 스프링에서 ec2이용해 rds로 접속까지 끗..
이틀동안 삽질했다. 많은 일이 었었어..

0개의 댓글