我在尝试连接到本地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
两种情况都会引发此错误:
无法连接到服务器:没有这样的文件或目录是服务器 在本地运行并接受Unix域套接字上的连接 &#34; /var/run/postgresql/.s.PGSQL.5432"
搜索解决方案我想我知道我必须编辑pq_hba.conf和postgresql.conf文件以便以这些方式连接,但是已经设置了pg_hba.conf:
本地所有md5
和postgresql.conf
的listen_addresses =&#39; *&#39;
顺便说一句,由于viminfo存在问题,我甚至无法编辑这些文件,但这可能是另一个问题..
任何人都可以帮助我吗?
编辑: 使用PostgreSQL 9.6.2 在Ubuntu 14.04上
修改:
作为postgres用户,如果我要求使用postgre版本: psql -V
结果是 9.6.2
但是查看文件系统层次结构,所有conf文件都在此文件夹中
的/ opt / PostreSQL /的 9.4 /数据/
这可能是问题吗?
答案 0 :(得分:0)
您似乎混合了为ubuntu FS布局配置的客户端postgresql 9.6和可能使用自己的布局从EntrepriseDB(并在/opt/PostgreSQL
下安装)下载的postgresql服务器9.4。
假设postgresql正在运行,最简单的解决方案是将host=localhost
添加到您的连接字符串,以便它将使用TCP连接而不是不存在的Unix域套接字/var/run/postgresql/.s.PGSQL.5432
,因为不匹配。