如您所知,保持MySQL端口3306打开是不安全的。 但是,我想使用一个很好的MySQLpipe理程序,而不是phpMyAdmin,它需要打开3306端口。
当然,我可以只允许我的IP地址使用ipfw连接到端口3306。 问题是我的IP地址每24小时更换一次,所以我必须为每个IP地址添加一个新的规则。
没有更好的方法来保持MySQL安全,仍然使用远程连接?
是的,使用SSH端口转发。
在本地机器上,发出命令
ssh -L 3306:127.0.0.1:3306 [email protected]
然后你可以连接你的本地MySQLpipe理工具到本地机器上的3306端口。 你必须考虑到,MySQL的连接似乎也是来自127.0.0.1 ,所以你的MySQL用户的访问权限最相应的设置。
如果你碰巧在本地机器上使用MySQL服务器,端口3306将已经被占用,但是你可以使用不同的端口进行转发( 13306:127.0.0.1:3306 ),然后将你的pipe理工具指向不同的端口。
(更多信息与man ssh )。
编辑一些更多的解释作为您的意见的答案:
[email protected]只是一个占位符,将其replace为shell帐户的用户名和Mysql服务器的IP地址或主机名。 但是从你的本地机器来说,这个机器确实不是localhost 。 这部分不是关于你的MySQL用户名,因为SSH不知道MySQL。 127.0.0.1上的端口3306,并使用用户名root 。 尽pipe您从远程主机上工作,但对于MysQL服务器,连接似乎来自localhost ,因此必须相应地设置访问权限。