当localhost没问题时,spring jdbc无法连接远程mysql

时间:2016-08-12 16:21:58

标签: java mysql spring jdbc intellij-idea

这是我的jdbc属性(使用com.mchange.v2.c3p0.ComboPooledDataSource):

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://myserveraddress:3306/mydatabasename?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
jdbc.username=myusername
jdbc.password=mypassword

myserveraddresslocalhostmy local ip address时,一切正常:)

但是,当myserveraddressmy server ip address(局域网外)时,会出现例外情况:(

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@6c4f5d64 -- timeout at awaitAvailable()

实际上,我已经通过cmd,HeidiSQL,IntelliJ IDEA测试了服务器地址,一切正常......

cmd ping and cmd mysql connection is ok

HeidiSQL connection and IntelliJ IDEA mysql connection test is ok

感到困惑,感谢您的帮助

1 个答案:

答案 0 :(得分:0)

首先检查您的端口(3306)是否已在此网页http://portchecker.co/上打开(从外部,路由器可能会阻止您的端口接收传入连接),如果没有:

- 在路由器上进行端口转发

OR

- 将您的服务器放到路由器上的DMZ