从位于服务器上的 Spring Boot 应用程序连接到远程数据库失败

Posted

技术标签:

【中文标题】从位于服务器上的 Spring Boot 应用程序连接到远程数据库失败【英文标题】:Connecting to remote DB from SpringBoot app located on server failed 【发布时间】:2017-10-06 21:47:08 【问题描述】:

我已经在RaspberryPi 服务器上部署了我的应用程序,它需要连接到远程mysql 数据库。属性如下:

# LOCAL DATABASE
#spring.datasource.url = jdbc:mysql://localhost:3306/test3?autoReconnect=true&useSSL=false
#spring.datasource.username = root
#spring.datasource.password = admin

# REMOTE DATABASE
spring.datasource.url = jdbc:mysql://modraszka.sth.sth:8822/test3?autoReconnect=true&useSSL=false
spring.datasource.username = root
spring.datasource.password = password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

但是当我尝试运行应用程序时,它会抛出:

远程数据库与应用部署在同一台服务器上。

【问题讨论】:

你试过 telnet 吗?远程登录 modraszka.sth.sth 8822 @reos telnet 工作 【参考方案1】:

看来你的宿主鬃毛是无效的 (modraszka.sth.sth)。

    尝试 ping 它。 如果它的工作尝试使用 telnet modraszka.sth.sth 8822 远程登录。 如果 telnet 不起作用,请尝试 telnet 到 telnet modraszka.sth.sth 22。

那么它对您不起作用,我们可以假设您必须授予对远程服务器中 mysql 端口的访问权限。

【讨论】:

我可以ping和telnet它。根据我前段时间授予用户的访问权限,所以我拥有所有权限【参考方案2】:

检查您的远程数据库是否对 Internet 开放,或者默认情况下仅在本地运行

grant remote access of MySQL database from any IP address

【讨论】:

这是因为当我创建一个隧道并将其映射到 localhost:9000 并在本地运行应用程序时它可以工作。但现在我不想从连接到数据库的服务器上运行应用程序 - 它也在同一台服务器上

以上是关于从位于服务器上的 Spring Boot 应用程序连接到远程数据库失败的主要内容,如果未能解决你的问题,请参考以下文章

从部署在windows中的spring boot应用程序上传aix服务器中的文件

Spring Boot:无法配置

查看当前 Spring (Boot) 属性

访问PCF Spring Boot应用程序上的VCAP属性

jboss spring boot

无法从 JUnit 中的 Spring Boot 读取应用程序属性?