使用SSH通过PHP连接到远程MySQL数据库

时间:2011-02-07 21:52:50

标签: php mysql mamp

我有一个远程数据库,我想从本地运行的PHP连接到。数据库不允许远程连接,因此通常我将SSH连接到框中并从命令行使用它,但这不是一个长期的解决方案。

我有SSH访问权限,一旦我进入SSH,我就有MySQL访问权限,但我不知道如何让PHP进入该工作流程。如果我能在MAMP中完成这项工作,那也很棒。

4 个答案:

答案 0 :(得分:2)

对于开发或测试,您可以先使用ssh命令设置隧道,然后以本地数据库的形式访问远程数据库。步骤是:

1)使用ssh命令设置隧道。命令格式:ssh -L [本地端口]:127.0.0.1:[远程mysql端口,默认为3306] [user] @ [remote mysql server ip]。样品:    ssh -L 3307:127.0.0.1:3306 ford@134.11.21.89

2)保持命令窗口活着

3)您可以通过mysql字符串访问远程数据库:mysqli:// [user]:[password] @ 127.0.0.1:3307 / [数据库名称]

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以设置SSH隧道,然后将您的php连接代码指向通过隧道转发的本地端口。在Windows下你可以使用putty;对于Mac,会有类似的解决方案。

答案 3 :(得分:0)

如果这是用于开发的,那么alex建议的解决方案是要走的路;建立一个ssh-tunnel。

隧道会将您的127.0.0.1:3306-请求重定向到远程计算机。远程机器也将相信请求将来自127.0.0.1(本地)。

但是,如果您的服务器(共享主机?请指定)不允许来自127.0.0.1的mysql连接(通常只允许使用localhost),则可能会遇到问题。这些之间存在细微差别,它会阻止您的隧道到达远程mysqld。

只需谷歌隧道,设置它,并使用php-connection字符串中的127.0.0.1。

的问候,

// t

相关问题