如何远程连接MySQL并保持安全?

Modified on: Wed, 11 Sep 2019 17:20:02 +0800

如您所知,保持MySQL端口3306打开是不安全的。但是,我想使用一个好的MySQL管理程序而不是phpMyAdmin,这需要3306端口才能打开。

当然我只允许我的IP地址使用ipfw连接到端口3306。问题是我的IP地址每24小时更改一次,因此我必须为每个IP地址添加新规则。

是不是有更好的方法来保持MySQL安全并仍然使用远程连接?

最佳答案

是的,使用SSH端口转发。

在本地计算机上,发出命令

ssh -L 3306:127.0.0.1:3306 username@mysqlhost.com

然后您可以将本地MySQL管理工具连接到本地计算机上的端口3306。您必须考虑到,对于MySQL,连接似乎也来自127.0.0.1,因此您的MySQL用户的访问权限大多数都是相应设置的。

如果您碰巧在本地计算机上使用MySQL服务器,则已经使用了端口3306,但您可以使用不同的端口进行转发(13306:127.0.0.1:3306)然后将您的管理工具指向该不同的端口。

(更多信息请参见man ssh)。


修改更多解释作为对您的评论的回答:

  1. 您将在您通常工作的本地计算机上使用此命令,就在您想要对数据库执行某些管理工作之前。通过SSH创建隧道可以将进入本地计算机端口的所有流量转发到另一台计算机上的另一个端口。
  2. 在这种情况下,隧道在MySQL服务器上结束,您可以通过SSH直接联系。部分username@mysqlhost.com只是一个占位符,用shell帐户的用户名和MysQL服务器的IP地址或主机名替换它。从您的本地计算机,但肯定不是localhost。这部分完全不是关于你的MySQL用户名,因为SSH不了解MySQL。
  3. 如果您在数据库上以root身份工作,则将MySQL管理工具连接到主机127.0.0.1上的端口3306,并使用用户名root。虽然您在远程主机上工作,但对于MysQL服务器,连接似乎来自localhost,因此必须相应地设置访问权限。
  4. SSH端口转发/隧道是一个非常强大的工具。你一定要仔细阅读它。
  5. 醇>
作者:,Sven

相关问答

添加新评论