有一个我想连接的服务器。它有多个运行在其上的虚拟机,每个虚拟机都有一个 mysql 数据库。我目前可以使用 ssh 连接到此服务器,然后使用 mysql -u user -h host -p password
从每个 VM 连接到任何数据库。现在我想从我的本地计算机使用 MySQL 工作台连接到相同的 MySQL 数据库。但是有防火墙,目前我使用putty通过公钥认证通过防火墙,我可以访问任何我想要的机器。我看过 here 我必须在本地安装一个 MySQL 服务器(我已经这样做了,我正在使用 mysql workbench)并使用环回地址,这样你就不需要访问外部服务器。谁能指出如何做到这一点的正确方向?
最佳答案
您需要使用 ssh 隧道。
在选项下的 Putty 中,转到“连接”->“SSH”->“隧道”。添加从源端口 13306
到目标端口 localhost:3306
的隧道。
您可以在连接之前或之后在 Putty 中执行此操作。最好事先做好并保存 session 配置,否则必须重新输入设置会很乏味。
在 MySQL Workbench 中连接到 localhost
端口 13306
。
这里有一个很好的屏幕截图指南:Setting up an SSH tunnel with PuTTY
SSH 隧道在您的 SSH 客户端计算机上创建一个 TCP 端口,并将任何流量定向到目标设置的任何位置。您可以添加多个隧道,但每个隧道都必须监听不同的源端口号。
关于php - 在防火墙后连接 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156669/