Answers:
这意味着Postgres尝试使用Ident协议对用户进行身份验证,但不能。身份验证的工作方式如下:
pg_hba.conf
文件(中的/etc/postgres-something/main
)将“ Ident”定义db
为从某些主机进行连接的用户连接到数据库的协议可能的原因和解决方案:
sudo apt-get install oidentd
)。CREATE ROLE foo
。或者,将条目添加到/etc/postgresql/.../main/pg_ident.conf
。也许您实际上想使用密码而不是Ident连接。pg_hba.conf
适当地编辑文件。例如,更改:
host all all 127.0.0.1/32 ident
至
host all all 127.0.0.1/32 md5
不知道原因,但这对我来说是固定的:
在 pg_hba.conf
更改为此:
托管所有所有127.0.0.1/32 md5
确切错误: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
在CentOS上,将以下行添加到/var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
并注释掉其他条目。
当然,此设置并不安全,但是如果您只是在像我这样的开发虚拟机上搞砸,那可能就可以了...
如果尚未尝试过,请查看pg_hba.conf文件。它将被命名为/var/lib/pgsql/9.3/data/pg_hba.conf(Fedora 20); 您可能必须使用'find / -name pg_hba.conf'来找到它。
在文件底部,将“ METHOD”值更改为“ trust”以进行本地测试(有关完整信息,请参见postgres文档)。重新启动计算机,以确保一切均已开始干净并读取新的参数。
希望这可以解决您的麻烦。它使用PostgreSQL 9.3解决了我在Fedora 20上的问题。
pg_ctl reload
从控制台使用,或者SELECT pg_reload_conf();
以特权用户身份执行SQL时使用。
/var/lib/psql/data