이 문서의 내용
테스트 환경 및 주요 아젠다
더보기
이 프로젝트의 개발 환경
- 개발 언어 및 환경
- OpenJDK 12
- Spring: spring-context: 5.0.2.RELEASE
- Spring: spring-jdbc: 5.0.2.RELEASE
- Tomcat: tomcat-jdbc: 8.5.27
- MySQL: mysql-connector-java: 5.1.45
- Gradle 7.3
- 기타 환경
- MySQL 8.2.0
스프링 프로젝트에서 MySQL 드라이버 클래스를 사용해 JdbcTemplate을 사용하고 있습니다.
MySQL 서버에 연결을 시도하면 nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 오류가 발생합니다.
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 145 milliseconds ago. The last packet sent successfully to the server was 140 milliseconds ago.
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:600)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:657)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:688)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:700)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:756)
at chap08.MemberDao.selectByEmail(MemberDao.java:22)
at chap08.MemberRegisterService.regist(MemberRegisterService.java:16)
at chap08.Main.processNewCommand(Main.java:73)
at chap08.Main.main(Main.java:31)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Step 1: MySQL 연결 정보 확인
소스 코드에서 tomcat의 DataSource를 생성하여 MySQL에 연결 정보를 입력합니다.
연결 정보가 잘못 입력된 경우 해당 오류가 발생 할 수 있습니다.
DataSource ds = new DataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost/spring5fs?characterEncoding=utf8");
ds.setUsername("spring5");
ds.setPassword("spring5");
연결 정보가 오입력된 경우 수정하고 연결을 확인합니다. 연결 정보에 문제가 없는 경우 다음 단계를 진행합니다.
Step 2: MySQL Connector 의존성 버전 업데이트
MySQL 서버에 연결하여 MySQL 버전을 확인합니다.
select version();
테스트 환경에 설치된 MySQL 버전은 8.2.0입니다.
프로젝트의 의존성 build.gradle에서 mysql-connector-java 버전은 5.1.45을 사용하고 있습니다.
MySQL Connector 버전을 업데이트 후 연결을 확인합니다.
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
이 테스트 환경에서는 8.0.22 버전으로 업데이트 후 정상적으로 연결되었습니다.
'Java > Spring' 카테고리의 다른 글
트랜잭션 전파(Transaction propagation)에 대한 이해 (0) | 2023.12.18 |
---|---|
Spring 5 입문: Chapter 08B. JdbcTemplate을 사용한 업데이트 SQL, 트랜잭션(Transaction) 관리 (0) | 2023.12.12 |
Spring 5 입문: Chapter 08A. JdbcTemplate을 사용한 DB 연동 (0) | 2023.12.05 |
"Requested bean is currently in creation: Is there an unresolvable circular reference?" Bean 순환 참조 오류 (0) | 2023.12.04 |
스프링 AOP & AspectJ Pointcut 기본 문법 (0) | 2023.12.01 |