如何通过开放的SSH隧道使用PHP连接到Postgres数据库



我需要使用PHP上的远程服务器上的Postgres数据库连接。我在本地机器上打开了SSH隧道8000。隧道似乎正常。

当我尝试使用PHP连接到DB时,出现了问题。以下代码:

$ConnectionString = "host=127.0.0.1:8000  user=username password=passphrase dbname=databasename sslmode=require port=5432";
pg_connect($ConnectionString);

产生以下错误:

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not translate host name "127.0.0.1:8000" to address: Unknown host in [path]mappage.php on line 22
Not connected 

那么,如何通过SSH打开数据库连接?

对于它的价值,我可以使用ssh。

,如手册中所写:

$ConnectionString = "host=127.0.0.1 port=8000  user=username password=passphrase dbname=databasename sslmode=require";

您有两次端口,一次错误。

设置隧道后,您可以通过127.0.0.1连接到数据库。例如(mysql示例):

ssh -L 127.0.0.1:8000:127.0.0.1:5432 sshuser@example.com

之后,我的数据库的连接参数为:

Host: 127.0.0.1 (localhost would try to connect to socket)
Port: 8000
User: username
Pass: passphrase

最新更新