EC2에 Springboot를 배포하려 하는데 계속하여 서버가 터지는 문제가 발생하였다.
DB연결에도 문제가 없고 로컬에서는 정상적으로 작동하여 FileZilla를 이용해 EC2에 jar파일만 배포하기로 하였다.
jar 파일 생성을 위해 intelliJ에서 build를 하자 Build Failed가 났고 에러는 test class에서 발생하였다.
이를 해결하기 위해 test 파일을 전부 주석처리 하였다.
test파일을 주석처리 한 후에 build하니 정상적으로 작동한다.
그래도 FileZilla 쓰기로 했으니까 FileZilla를 통해 EC2에 배포하고자 한다.
배포 순서는 다음과 같다.
그러나 여전히 jar파일이 실행되지 않는다.
이는 일반적으로 명령어나 스크립트 실행 중에 오류가 발생했을 때 반환되는 종료 코드인데
FileZilla를 보다 보니 jar 파일의 권한에 실행권한이 없어 실행권한을 부여해 주었다.
chmod +x 파일명.jar
그러나 여전히 실행이 되지 않아 'nohup.out'에서 log를 확인해 보았다.
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:824) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-j-8.0.32.jar!/:8.0.32]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar!/:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar!/:na]
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.6.15.Final.jar!/:5.6.15.Final]
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:181) ~[hibernate-core-5.6.15.Final.jar!/:5.6.15.Final]
"nohup.out" 1225L, 165630B
이전에는 EC2에서 MySQL 5.7버전을 사용하여 문제가 없었으나 이번에는 MySQL 8.0버전을 사용하면서 문제가 발생하였다.
spring.datasource.url=jdbc:mysql://서버IP:3306/db_name?allowPublicKeyRetrieval=true
spring.datasource.url=jdbc:mysql://서버IP:3306/db_name?useSSL=false
예시
spring.datasource.url=jdbc:mysql://localhost:3306/ILILO?useSSL=false&allowPublicKeyRetrieval=true