我们有一个内部MySQL数据库,我们的客户服务部门使用它来进行报价,我们的网站上有一个外部MySQL数据库,我们的客户使用它来进行报价。我有一个我写的PHP报告,它给了我来自内部数据库的信息。现在,我想修改报告,使其也包含来自外部数据库的数据。我需要使用SSH连接连接到外部数据库。我一直在考虑使用cURL或SSH2,但我不确定这两种方法是否都是正确的。以前有没有人在work服务器上查询过SSH MySQL数据库,或者有人知道我需要做些什么才能做到这一点?感谢您所能提供的任何帮助!
发布于 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可以了解更多信息)
发布于 2011-11-10 22:11:56
是的,您可以通过SSH从bash查询mysql,但这不是最佳且可伸缩的方法。最好的解决方案是在生产服务器上创建REST Web服务。然后,您的内部系统将使用身份验证来查询该远程服务。
发布于 2011-11-10 22:44:36
您设置了一个从本地服务器上的某个可用端口到远程服务器上的mysql端口的隧道:
ssh -L 3307:localhost:3306 someuser@remoteserver这将在本地系统上创建一个侦听端口3307的隧道,该隧道连接到远程服务器上的端口3306 (MySQL)。
然后将PHP代码指向端口3307而不是3306,它将被隧道传输到远程服务器上的mysql。
https://stackoverflow.com/questions/8080674
复制相似问题