首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SSH查询远程SSH服务器上的MySQL数据库

问通过SSH查询远程SSH服务器上的MySQL数据库
EN

Stack Overflow用户
提问于 2011-11-10 22:02:16
回答 3查看 1.4K关注 0票数 0

我们有一个内部MySQL数据库,我们的客户服务部门使用它来进行报价,我们的网站上有一个外部MySQL数据库,我们的客户使用它来进行报价。我有一个我写的PHP报告,它给了我来自内部数据库的信息。现在,我想修改报告,使其也包含来自外部数据库的数据。我需要使用SSH连接连接到外部数据库。我一直在考虑使用cURL或SSH2,但我不确定这两种方法是否都是正确的。以前有没有人在work服务器上查询过SSH MySQL数据库,或者有人知道我需要做些什么才能做到这一点?感谢您所能提供的任何帮助!

EN

回答 3

Stack Overflow用户

发布于 2011-11-10 22:10:12

我实际上使用了一个名为"Sequel Pro“的SSH客户端,它提供了通过MySQL连接连接到MySQL的选项。这是完全可行的,但是如果你可以选择在没有它的情况下连接到数据库(例如,你可以从主机的“外部”连接到它),你应该更喜欢这样做。

我认为您可以通过SSH查询数据库的最简单方法是使用SSH端口转发,这样您就会产生一个执行ssh user@host-that-has-the-db -L3306:localhost:3306的进程,然后在本地主机上连接您的MySQL连接器。

SSH的-L参数指示它进行本地端口转发,因此SSH将侦听本地端口,并将从本地端口接收到的内容直接从另一端转发到指定的远程主机/端口。显然,我的示例在两端都使用端口3306,但可以根据需要进行更改(RTM可以了解更多信息)

票数 1
EN

Stack Overflow用户

发布于 2011-11-10 22:11:56

是的,您可以通过SSH从bash查询mysql,但这不是最佳且可伸缩的方法。最好的解决方案是在生产服务器上创建REST Web服务。然后,您的内部系统将使用身份验证来查询该远程服务。

票数 0
EN

Stack Overflow用户

发布于 2011-11-10 22:44:36

您设置了一个从本地服务器上的某个可用端口到远程服务器上的mysql端口的隧道:

代码语言:javascript
复制
ssh -L 3307:localhost:3306 someuser@remoteserver

这将在本地系统上创建一个侦听端口3307的隧道,该隧道连接到远程服务器上的端口3306 (MySQL)。

然后将PHP代码指向端口3307而不是3306,它将被隧道传输到远程服务器上的mysql。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8080674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档