如何在potgresql中启动GSSAPI

纳瓦尼塔·克里希南

我在 REDHAT 7 中安装了 postgres。然后我安装了 python 3.6。我已经创建了虚拟环境。我也在 postgres 中创建了一个表。然后我执行了这个 python 脚本,但出现了一些错误。

import psycopg2
conn = psycopg2.connect("dbname=postgres user=postgres host=localhost password=postgres")

错误是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/scripts/san-automation/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not initiate GSSAPI security context: Unspecified GSS failure.  Minor code may provide more information
could not initiate GSSAPI security context: Server not found in Kerberos database
FATAL:  Ident authentication failed for user "postgres"

cat /var/lib/pgsql/12/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident
詹尼斯

看起来它正在抢先加载您的 gss/kerberos 配置文件(即使它不会使用它们),并在其中找到了它不喜欢的东西。但这似乎只是一个警告。真正的错误是最后一行:

致命:用户“postgres”的身份验证失败

我认为这与 GSS 没有任何关系。查看服务器的日志文件以了解 ident 失败的原因。

如果您显示的 pg_hba.conf 是有效的,那么在您的系统上 localhost 必须解析为 ::1,而不是 127.0.0.1。也就是说,它使用的是 ipv6 而不是 ipv4。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章