在即将到来的项目中,我有两个服务器设置:一个是应用程序服务器,另一个是已经存在的,运行带有需要访问的数据库的mysql服务器。 我联系了MySQL服务器的服务器pipe理员,我可以访问远程mysql数据库的唯一方法是通过“SSH隧道”。 我从来没有这样做过,从来没有听说过,所以我的问题,是否有任何缺点,如performance明智? 与直接访问默认端口上的mysql服务器相比,它不是很慢?
对于客户端访问,这是一个伟大的build议,而不是通过互联网发送纯文本数据库stream量。 您还会冒险authentication数据。 开销不超过任何其他SSH会话。
对于应用程序访问,我build议使用SSL over MySQL 。
从pipe理方面来说,你无法限制每台主机从MySQL访问的权限,因为mysql会看到来自你的退回主机的所有连接。 您可以从sshd服务器获得更强大的身份validation控制选项。
从客户端,当你的应用程序需要连接时,你必须确保隧道已经启动。 如果您需要很长一段时间,您可能需要使用ssh keepalives +在ssh连接上运行虚拟应用程序,所以您不会自动注销。