Postgresql

我如何通過 SSH 上的 Unix Doman Socket 連接到遠端 Potgresql 伺服器

  • November 24, 2019

我有兩台機器,我的工作站在 Arch Linux 上執行,我的雲伺服器在 Ubuntu 上執行。

我已經在我的伺服器上安裝了 Postgresql,並且可以通過伺服器本身上的 Unix Domain Socket 訪問它,現在我想通過 ssh 隧道從我的工作站連接到 postgresql 伺服器。我使用 openssh 套接字隧道嘗試連接:

ssh -L/tmp/postgresql:/var/run/postgresql production@<ip>

為了連接到伺服器,我在psql

psql -h /tmp/postgresql

但我收到以下錯誤。

psql: error: could not connect to server: could not connect to server: No such file or directory
       Is the server running locally and accepting
       connections on Unix domain socket "/tmp/postgreql/.s.PGSQL.5432"?

我做錯了什麼嗎?

謝謝

psql -h獲取目錄名稱,在該目錄名稱中創建 unix 域套接字,其名稱基於某種硬編碼方案,即.s.PGSQL.5432在通過 TCP 進行通信時預設基於預設埠 5432。ssh -L取而代之的是,本地和遠端端都不是目錄,而是套接字的確切文件名,即不僅僅是/tmp/postgresql但是/tmp/postgreql/.s.PGSQL.5432.

引用自:https://serverfault.com/questions/993074