我需要使用PHP连接到远程服务器上的postgres数据库。我在本地机器上打开了一个SSH隧道,本地端口8000.隧道似乎工作正常。
当我尝试使用PHP连接到数据库时出现问题。以下代码:
$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连接到PGAdmin的远程PostgreSQL数据库。
答案 0 :(得分:0)
正如in the manual所写,它应该是:
$ConnectionString = "host=127.0.0.1 port=8000 user=username password=passphrase dbname=databasename sslmode=require";
您有两次端口,一次不正确。
答案 1 :(得分:0)
设置隧道后,即可通过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