Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- window10 Education
- window11 Education
- vmware workstation player
- github
- Spring Boot
- window10
- git pull --rebase
- 아임포트
- ObjectMapper
- 정처기
- IAMPORT
- 취성패
- 티스토리챌린지
- git
- json string
- 운영체제
- window11
- 방통대
- 방송대
- git 설정
- 오블완
- 취업
- java
- 윈도우10 Education
- 런던뮤지컬
- snake case
- 소비통장
- git pull
- camel case
Archives
- Today
- Total
홍차의 미로찾기
[AWS RDS] 새로운 계정으로 애플리케이션 접속하기 본문
반응형
RDS에서 최초로 만드는 계정은 admin 으로 생성.
java spring boot 애플리케이션을 만들면서 로컬 mysql 에만 연결해봤는데, 이번에 rds 생성하고 직접 연결을 시도함.
spring:
datasource:
url: jdbc:mysql://rds 엔드포인트:3306/db?useSSL=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: admin
password: ~~
최초로 만든 슈퍼유저인 admin은 모든 권한이 있어서인지 잘 연결되는것을 확인함.
그래서 애플리케이션 전용 계정인 app_server 계정을 만들기로 함.
또한, 권한은 딱 CRUD만 주기로 함!
첫번째 삽질. 계정 만들 때 @ 뒤에 endpoint 붙임
create user 'app_server'@'rds 엔드포인트' identified by '비밀번호';
@ 뒤에 당연히 ip 를 넣는 줄 알고 붙여서 생성.
근데 생각해보니, 계정 생성 시점에 이미 나는 admin 계정으로 rds mysql 에 접속한상태임.
rds 내부에서는 localhost 라는 생각이 들어서 다시 생성!
두번째 삽질. @ 뒤에 localhost 붙임
create user 'app_server'@'localhost' identified by '비밀번호';
로컬에서 생성할때는 이렇게 생성했기때문에 rds에도 동일하게 생성해봄.
막상 애플리케이션 연결하니 에러가 났음.
아래와 같은 에러였음.
mysql Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is nul
계정 오류도 아니고.. 이상한 에러였음..
챗지피티 말로는, 이 오류 메세지는 db 연결 중에 sql 예외를 처리할 때 발생하는 문제를 나타낸다고 함.
뭔가 계정이 잘못된 것 같아서 이리저리 찾아봄.
근데 보통 RDS에서는 @’localhost’가 아니라 @'%' 로 한다는것을 알게됨
결론
아래와 같이 스크립트 작성했더니 연결 잘 됨!
# app용 계정 생성
create user 'app_server'@'%' identified by '비밀번호';
# app용 계정 권한 부여
grant select,insert,update,delete on mustard.* to 'app_server'@'%';
# mysql에서 권한 테이블을 다시 로드하여 권한 변경사항을 즉시 반영해줌
FLUSH PRIVILEGES;
반응형
'프로그래밍 > BUILD DEPLOY' 카테고리의 다른 글
[AWS] MAC에서 EC2 연결하기 (터미널) (2) | 2024.10.22 |
---|---|
[AWS] Elastic IPs(탄력적 IP) 생성 및 EC2 연결 (프리티어) + 탄력적 IP 삭제 (0) | 2024.10.22 |
[AWS] 가비아 도메인 구매 및 ROUTE 53 연결 + 과금 (2) | 2024.10.22 |
[AWS RDS] RDS 연결 오류 - ERROR 2059 (HY000): Authentication plugin 'mysql_native_password' cannot be loaded (0) | 2024.10.20 |
[CICD] github actions 변수 사용하기 (env 파일, secrets and variables) (0) | 2024.10.20 |
Comments