pqxx:broken_connection 尝试连接到 postgres 数据库

pqxx: broken_connection on trying to connect to posgres db

我在尝试连接到本地 postrgres 数据库时遇到了这个问题。到目前为止,我成功地使用 jdbc 连接到相同的数据库或直接在 PGAdmin 中工作,当我尝试使用 pqxx 库或从 shell:

连接时会发生此错误

pqxx代码:

#include <pqxx/connection.hxx>

int main(){
    pqxx::connection conn("user=postgres port=5432 dbname=pqxx-test password=postgres");
    return 0;
} 

或来自 shell,作为用户 postgres:

psql pqxx-test

两种情况都会引发此错误:

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

正在搜索解决方案我想我知道我必须编辑 pq_hba.conf 和 postgresql.conf 文件才能以这些方式连接,但在 pg_hba.conf 中已经设置:

local all all md5

并在 postgresql.conf

listen_addresses='*'

顺便说一句,由于 viminfo 的问题,我什至无法编辑这些文件,但也许这是另一个问题..

谁能帮帮我?

编辑: 使用 PostgreSQL 9.6.2 在 Ubuntu 14.04

编辑:

作为 postgres 用户,如果我使用以下方式请求 postgre 版本: psql -V

the result is 9.6.2

但是查看文件系统层次结构,所有 conf 文件都在这个文件夹中

/opt/PostreSQL/9.4/data/

这会是问题所在吗?

您似乎混合了为 ubuntu FS 布局配置的客户端 postgresql 9.6 和大概从 EntrepriseDB 下载的 postgresql 服务器 9.4(并安装在 /opt/PostgreSQL 下)使用其自己的布局.

假设 postgresql 是 运行,最简单的解决方案是将 host=localhost 添加到您的连接字符串,这样它将使用 TCP 连接而不是 Unix 域套接字 /var/run/postgresql/.s.PGSQL.5432 因为不匹配而不存在。