![MySQL 生产服务器的远程管理](https://linux22.com/image/504768/MySQL%20%E7%94%9F%E4%BA%A7%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86.png)
只是想知道在生产、互联网连接服务器中 MySQL 数据库的远程管理的最佳安全实践?
具体来说,如果网站位于同一台服务器上,那么将服务器绑定到 127.0.0.1 是有意义的,但这只允许从远程服务器(不是真正的远程)进行远程管理,因此在我的情况下是 ssh,我更喜欢 mysql 附带的 GUI。
在远程服务器上使用 GUI 的最佳方式是什么。VPN?ssh 隧道?ssl?人们真的需要这样做吗?因为大多数设置都应该在开发中完成,然后通过脚本等进行克隆?
答案1
或者实际上根本不使用 GUI。MySQL 没有附带 GUI(尽管您建议它附带)。
由于您在生产中实际上不会做任何花哨的事情,除了可能运行经过仔细审查的查询之外,所以您不需要 GUI。
任何架构迁移等都应在测试系统上进行开发,然后在投入生产之前进行测试 - 脚本在投入生产之前应该确实没有错误。无论如何,这是我的看法。
如果开发人员真的想使用 GUI 来准备迁移,他们可以,但最终只有代码可以进入你的版本控制系统。
答案2
设置到远程服务器上端口 3306 的 ssh 隧道。然后,您可以像在本地机器上一样运行任何您想要的工具/GUI。
为了安全起见,请确保 ssh 已安全设置,限制用户,禁用密码登录,更改默认端口 (22),限制允许连接的主机(可选使用防火墙/iptables)。并确保连接机器也已安全锁定 :-)
对于只读查询,我已经使用 stunnel 设置了到辅助服务器的复制,我可以像上面一样使用 ssh 访问该服务器。