如何授予java web应用访问数字海洋水滴的权限

relj7zay  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(259)

我将mysql服务器托管在一个digitaloceandroplet上,我正试图找出如何授予springbootweb应用程序对droplet的访问权,以便它能够连接到数据库。我配置了droplet,以便只能通过ssh隧道访问它(即:i禁用了密码身份验证),但数据库服务器本身可以使用用户名和密码连接。
我知道如何使用connector/j连接到数据库,配置数据源等等。然而,数字海洋的额外安全层对我来说是新的,我不知道如何解决这个问题。
编辑:当我运行应用程序并尝试命中端点时,出现以下错误:

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
cpjpxq1n

cpjpxq1n1#

所以,我错误地认为认证问题与数字海洋水滴有关。正如错误消息(参见上面的问题)所指出的,spring引导应用程序能够访问远程mysql服务器,并且在那里发生了身份验证问题。结果发现,我试图连接的mysql用户只能在localhost上使用。
因此,我创建了一个新的mysql用户并将其绑定到本地机器的公共ip地址,这就解决了问题。有关如何做到这一点的详细信息,请阅读以下答案:
不允许主机“.xx..”连接到此mysql服务器

相关问题