簡體   English   中英

如何通過開放的 ssh 隧道使用 php 連接到 postgres 數據庫?

[英]How can I connect to a postgres database using php via an open ssh tunnel?

我需要使用 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 數據庫。

正如手冊中所寫的那樣,它應該是:

$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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM