【发布时间】:2019-05-16 05:48:40
【问题描述】:
我有几个并发 + 远程 Java/MySQL 连接到私有云服务器,在第一种方法中,我开始将这些连接(连接、查询、关闭连接)直接连接到服务器的公共 IP,它工作正常,但它是由于某些安全配置将使 MySQL 绑定保留为 localhost(将无法再使用公共 IP 访问它),这不是正确的方法。
所以我必须通过 SSH 隧道连接到 MySQL。我已经看到了一些关于“如何使用 java 制作这个”的回复,例如:
Connect to remote MySQL database through SSH using Java
这很清楚和可以理解,但是我仍然不明白是否每次需要打开和关闭 MySQL 连接时都必须打开和关闭 SSH 隧道,或者可能是什么使用 SSH 会话时可能会遇到的问题。
还非常感谢有关在何处以及如何存储 SSH 凭据的任何提示。到目前为止,我为 MySQL 用户使用 base64 将它们保存在 HKEY_LOCAL_MACHINE 上,但对于 SSH 凭据来说似乎不够安全。
【问题讨论】:
-
他们说你在本地机器上创建了隧道,它会启动并打开。然后你将你的数据库连接指向本地端。如果您在隧道关闭的情况下运行程序,它将无法连接。
-
@mavriksc,所以 java 应用程序仍然指向服务器的公共 IP,隧道打开?
-
没有。 java 应用程序将指向 sql://localhost:jdbcPort/... 运行应用程序的机器将通过服务器上的开放 ssh 端口从 localhost:jdbcPort 到 DbServer.com:MySqlPort 的隧道。跨度>
-
@mavriksc 非常感谢。您的 cmets 帮助我找到了解决方案。如果有人面临同样的困惑,我将在答案部分进一步解释。