2014-10-05 61 views
0

我有一個終端,我可以連接到Postgres的如何通過兩個終端連接到postgres?

psql testdb 

但是當我打開一個新標籤或一個新的終端,並試圖連接使用psql將返回錯誤

此錯誤返回

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

我試圖創建另一個用戶,並使用另一個端口

createuser testing_multiple 

psql -p 5433 

發生同樣的錯誤。

+1

可能有兩個不同的psql二進制文件(IOS?)嘗試找到psql二進制文件(在兩個終端中)鍵入'哪個psql' – wildplasser 2014-10-05 19:11:18

+0

我認爲都返回'/ usr/bin/psql' – user87852 2014-10-05 19:12:15

+0

也許你是兩個不同的機器嗎? (或虛擬機)或在chroot籠... – wildplasser 2014-10-05 19:15:45

回答

1

你的問題可能是你在virtualenv內工作。這不是chroot,但它設置了一堆環境變量來僞造本地環境,很可能包括PATH和其他設置。

最有可能的是,unix套接字與編譯到您正在使用的psql二進制文件中的位置不同。我會說你的PostgreSQL服務器套接字可能實際上在/tmp/.s.PGSQL.5433,在這種情況下,export PGHOST=/tmp/將工作。既然你可以在virtualenv終端內連接,你可以檢查 - 在psql之內,運行SHOW unix_socket_directories;。顯示的位置是您可以在PGHOST中連接到該PostgreSQL服務器。

export PGHOST=localhost工作的原因是您迫使psql(以及其他使用libpq的客戶端)通過TCP/IP而不是默認的unix套接字連接進行連接。