[RDS MySQL] Too many connections 해결 방법
2023. 5. 3. 14:11
Trouble Shooting
문제 상황 AWS RDS (MySQL) 사용 중 DB에 접속이 안 됨 Spring Boot 프로젝트 실행 시 ERROR 1040 (08004): Too many connections 에러 발생 원인 다른 프로젝트에서도 해당 DB를 사용하는데, Connection이 중지되지 않고 계속 유지되서 사용할 수 있는 Connection이 없는 상황 해결 방법 RDS DB의 최대 Connections 수 (max_connections)를 늘려주고, 일정 시간이 지나면 Connection을 중지 시키도록 connect_timeout을 설정하여 해결함 AWS RDS console 접속 좌측 탭의 파라미터 그룹 클릭 만약 파라미터 그룹이 하나 있으면 파라미터 그룹 생성 (default는 수정할 수 없기 때문) 아래와 같..
[Spring Boot] 프로젝트 TimeZone 설정
2023. 4. 19. 15:32
Trouble Shooting
문제 상황 Spring Boot 프로젝트를 로컬에서 실행했을 때는 DB에 데이터를 삽입할 때, createdAt이 제대로 삽입됨 하지만 EC2로 배포 후 데이터를 삽입하면 한국 시간으로 들어가지 않고, 시간이 UTC로 들어가는 문제가 발생함 (한국 시간 -9) 원인 EC2 인스턴스 자체의 TimeZone을 바꿔봐도 해당 문제는 여전히 발생 프로젝트 자체의 TimeZone이 문제라고 생각함 해결 방법 아래의 코드를 통해 프로젝트의 TimeZone을 서울로 맞춰주면 됨 이 코드는 프로젝트의 main 클래스나 @Component로 등록한 클래스 내부에 적어줘야 실행됨 @PostConstruct는 프로젝트가 처음 실행될 때, 한 번만 실행 시켜주는 어노테이션 @PostConstruct public void se..
[Spring Boot] Jpa Delete 안될때 해결 방법 (CascadeType.REMOVE, OrphanRemoval, Soft Delete)
2023. 1. 15. 22:20
Trouble Shooting
문제 상황 Jpa로 값을 삭제하려 했지만 SQLIntegrityConstraintViolationException 에러가 발생 DB에서 확인해봐도 값이 정상적으로 삭제되지 않았음 원인 연관관계 매핑이 되어있는 상황에서는 부모 객체 삭제 시 자식 객체에서 부모 객체를 참조하고 있으면 에러가 발생하고 값이 삭제되지 않음 Parent와 Child가 1:N 관계를 맺고 있는 상황이고, Child가 연관관계 주인이라면 Child는 쉽게 삭제가 가능하지만, Parent를 삭제하려면 따로 처리가 필요함 [Spring Boot] 연관관계 매핑 참고 해결 방법 Cascade 사용 OrphanRemoval 사용 Soft Delete(논리 삭제) 방식 사용 각각의 방법을 예제를 통해 정리 예제 설명 Child, Parent..
[Spring Boot] Jpa로 MySQL 테이블 생성 안될때 해결 방법
2023. 1. 14. 18:15
Trouble Shooting
문제 상황 게시판 구현 시 좋아요(Like) 테이블을 생성해서 사용하려 함 Like Entity 생성 후 ddl-auto를 create로 설정하고 프로젝트 실행하였지만, Like Table이 생성되지 않았음 프로젝트는 실행되지만 아래의 에러가 발생한 것을 확인하였음 org.hibernate.tool.schema.spi.CommandAcceptanceException java.sql.SQLSyntaxErrorException 원인 like는 MySQL의 명령어이기 때문에 Table 이름을 like로 지정할 수 없었음 이와 비슷한 상황으로 rank라는 column을 사용한 경우에도 테이블이 생성되지 않았음 해결 방법 Entity Class 이름 변경 Like -> Likes, Good, Heart, ... ..