如何用两个终端连接到postgres?

时间:2014-10-05 19:07:56

标签: postgresql

我有一个可以连接到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 个答案:

答案 0 :(得分: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套接字连接。< / p>