java - spring jdbc连接远程mysql失败,而localhost正常

标签 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

myserveraddresslocalhost我的本地IP地址时,一切正常:)

但是,当myserveraddress我的服务器IP地址(在LAN之外)时,就会出现异常:(

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

很困惑,感谢您的帮助

最佳答案

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

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

或者

-将您的服务器置于路由器上的 DMZ

关于java - spring jdbc连接远程mysql失败,而localhost正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38922527/

相关文章:

没有 Redis 的 Spring Session

mysql - 不将用户数据保存到 laravel 5.6 中的用户表

php - Ubuntu - Mysql,我一个用户有两个权限,如何删除一个?

java - Google Analytics v4 看不到实时命中

java - 用于生成字母数字字符串的 RandomStringGenerator

php - 连接到 MySQL 权限被拒绝

java - 在 Spring 启动项目中将实体到 DTO 转换放在哪里?

java - @Value注释不返回值

java - 项目在嵌入式 Tomcat 中启动,但不能在完整的 Tomcat 中运行

java - 当我在 EDT 之外的线程上调用打印方法时没有任何反应?