如何授予Java Web App访问Digital Ocean Droplet的权限

时间:2018-07-27 23:47:42

标签: java mysql spring digital-ocean

我正在Digital Ocean Droplet上托管mysql服务器,并且我试图弄清楚如何授予Spring Boot Web应用程序对Droplet的访问权限,以便它可以连接到数据库。我配置了Droplet,使其只能通过ssh隧道访问(即:我禁用了密码身份验证),但是数据库服务器本身可以使用用户名和密码进行连接。

我知道如何使用Connector / J连接到数据库,配置数据源等等。但是,Digital Ocean的额外安全层对我来说是新的,我不确定如何解决此问题。

编辑:当我运行该应用程序并尝试命中一个端点时,出现以下错误:

The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: null,  message from server: "Host '<my network hostname>' is not allowed to connect to this MySQL server"] with root cause

1 个答案:

答案 0 :(得分:0)

因此,我误以为认证问题与Digital Ocean液滴有关。如错误消息(请参阅上面的问题)所示,Spring Boot应用程序能够访问远程mysql服务器,并且那里发生了身份验证问题。原来,我尝试连接的mysql用户只能在localhost上使用。

因此,我创建了一个新的mysql用户并将其绑定到本地计算机的公共IP地址,从而解决了该问题。有关如何完成此操作的详细信息,请阅读以下答案:

Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server