php - 在防火墙后连接 MySQL 数据库

标签 php mysql mysql-workbench

有一个我想连接的服务器。它有多个运行在其上的虚拟机,每个虚拟机都有一个 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/

相关文章:

php - 如何左连接来自同一个 mySQL 表的多个数据?

MySQL:如何找到特定行的平均值?

通过文本过滤器上的 MySQL 组总和金额

mysql - 这个 MySQL 语法有什么问题吗?

mysql - 错误 1022 : Can't write; duplicate key in table 'tablesample'

javascript - 自动填充 contact 7 表单,并在同一页面上提供指向 anchor 的链接

php - 如何在codeigniter中实现代码

javascript - Codeigniter:如何从不同的 View 访问 css 文件?

c# - 强制 ASP.NET Core Entity Framework Core 中的继承类到专用 MySQL 表

php - 无法向数据库添加记录