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
因为不匹配而不存在。
我在尝试连接到本地 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
因为不匹配而不存在。