我在尝试连接到本地 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 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接
搜索解决方案我想我明白我必须编辑 pq_hba.conf 和 postgresql.conf 文件才能以这些方式连接,但在 pg_hba.conf 中已经设置:
本地所有所有 md5
并在 postgresql.conf 中
listen_addresses='*'
顺便说一句,由于 viminfo 的问题,我什至无法编辑这些文件,但也许这是另一个问题..
谁能帮我?
编辑:在 Ubuntu 14.04 上使用 PostgreSQL 9.6.2
编辑:
作为 postgres 用户,如果我要求使用 postgre 版本: psql -V
结果是9.6.2
但是查看文件系统层次结构,所有 conf 文件都在此文件夹中
/选择/PostreSQL/ 9.4 /数据/
这可能是问题吗?
您似乎混合了为 ubuntu FS 布局配置的客户端 postgresql 9.6 和/opt/PostgreSQL
使用自己的布局从 EntrepriseDB 下载(并安装在 下)的 postgresql 服务器 9.4 。
假设 postgresql 正在运行,最简单的解决方案是添加host=localhost
到您的连接字符串中,以便它使用 TCP 连接而/var/run/postgresql/.s.PGSQL.5432
不是由于不匹配而不存在的 Unix 域套接字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句