Cyc*_*one 4 mysql remote-access freebsd
如您所知,保持 MySQL 端口 3306 打开是不安全的。但是,我想使用一个好的MySQL管理程序,而不是需要打开3306端口的phpMyAdmin。
当然,我可以只允许我的 IP 地址使用 ipfw 连接到端口 3306。问题是我的 IP 地址每 24 小时更改一次,因此我必须为每个 IP 地址添加一个新规则。
没有更好的方法来保持 MySQL 安全并仍然使用远程连接吗?
是的,使用 SSH 端口转发。
在本地机器上,发出命令
ssh -L 3306:127.0.0.1:3306 username@mysqlhost.com
Run Code Online (Sandbox Code Playgroud)
然后你可以将本地 MySQL 管理工具连接到本地机器上的 3306 端口。您必须考虑到 MySQL 的连接似乎也来自该连接127.0.0.1,因此您的 MySQL 用户的访问权限最重要的是相应地设置。
如果您碰巧在本地机器上使用 MySQL 服务器,端口 3306 将已被占用,但您可以使用不同的端口进行转发 ( 13306:127.0.0.1:3306),然后将您的管理工具指向该不同的端口。
(更多信息与man ssh)。
编辑更多解释作为对您评论的回答:
username@mysqlhost.com只是一个占位符,替换为你的shell账户的用户名和MySQL服务器的IP地址或主机名。在您的本地机器上,这绝对不是localhost。这部分与您的 MySQL 用户名完全无关,因为 SSH 不了解 MySQL。127.0.0.1并使用用户名root。尽管您在远程主机上工作,但对于 MySQL 服务器,连接似乎来自localhost,因此必须相应地设置访问权限。