본문 바로가기
이전개발자료/에러리포트

Caused by: java.net.ConnectException: Connection timed out: connect

by 캡틴쿼카 2021. 8. 3.
반응형

 에러 로그

 

Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[?:1.8.0_212]
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) ~[?:1.8.0_212]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_212]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_212]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_212]
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[?:1.8.0_212]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_212]
at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_212]
at java.net.Socket.connect(Socket.java:538) ~[?:1.8.0_212]
at java.net.Socket.<init>(Socket.java:434) ~[?:1.8.0_212]
at java.net.Socket.<init>(Socket.java:244) ~[?:1.8.0_212]
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:258) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:306) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2504) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2346) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2328) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) ~[mysql-connector-java-5.1.31.jar:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_212]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_212]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_212]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_212]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417) ~[mysql-connector-java-5.1.31.jar:?]
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344) ~[mysql-connector-java-5.1.31.jar:?]
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4]
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:204) ~[spring-jdbc-4.2.4.RELEASE.jar:4.2.4.RELEASE]

 

 

 해결방법

 

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

아래와 같은 사항을 확인해야한다.

  • 내가 사용하는 데이터베이스 클래스의 스펠링이 정확히 맞는지 확인
  • 내 컴퓨터에서 적은 데이터베이스의 아이피 / 포트로 실제 DB서버에 잘 접속되는지 확인
  • DB서버쪽으로 방화벽이나 포트가 막혀있지않는지 확인
  • DB 접속 ID/Password 가 맞는지 확인
  • 각 데이터베이스에 맞게 연결 커넥션을 적었는지 확인
    (mysql 계열은 dbname 을 / 로 분리하고, mssql을 ;로 분리하고 뒤에 적어준다.)
    jdbc:mariadb://127.0.0.1:3306/test
    jdbc:sqlserver://127.0.0.1:1443;databaseName=test
  • 간혹, 인터넷 사정이 좋지않아 연결이 오래걸리거나 할 경우에는 타임아웃 시간을 늘려도 될 수 도있지만,
    대용량데이터도 아니고, 요즘같은 인터넷 속도로 이 원인은 지극히 드물다....

 

본 포스팅은 정답노트라기 보다는
경험과 생각을 정리한 낙서장입니다.

 

 

 

 

 

 

반응형

댓글