postgresql后端:(psycopg2.OperationalError)致命:用户身份验证失败;气流;

postgresql后端:(psycopg2.OperationalError)致命:用户身份验证失败;气流;,postgresql,airflow,Postgresql,Airflow,试图在centos7计算机(本文后面:)上使用postgresql作为airflow(v1.10.5)的后端,但发现错误 sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户“airflow”的身份验证失败 我在机器上的设置是 [airflow@airflowetl气流]$psql气流 psql(9.2.24) 键入“帮助”以获取帮助。 气流=>\du 角色列表 角色名称|属性|成员 -----------+------

试图在centos7计算机(本文后面:)上使用postgresql作为airflow(v1.10.5)的后端,但发现错误

sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户“airflow”的身份验证失败

我在机器上的设置是

[airflow@airflowetl气流]$psql气流
psql(9.2.24)
键入“帮助”以获取帮助。
气流=>\du
角色列表
角色名称|属性|成员
-----------+------------------------------------------------+-----------
气流| |{}
postgres |超级用户,创建角色,创建数据库,复制|{}
气流->\l
数据库清单
姓名|所有者|编码|校对| Ctype |访问权限
-----------+----------+----------+-------------+-------------+-----------------------
气流| postgres | UTF8 | en|U US.UTF-8 | en|U US.UTF-8 |=Tc/postgres+
|| | | | postgres=CTc/postgres+
|| | | |气流=CTc/postgres
博士后|博士后| UTF8 | en|U US.UTF-8 | en|U US.UTF-8|
模板0 | postgres | UTF8 | en|u US.UTF-8 | en|u US.UTF-8 |=c/postgres+
|| | | | postgres=CTc/postgres
模板1 | postgres | UTF8 | en|u US.UTF-8 | en|u US.UTF-8 |=c/postgres+
|| | | | postgres=CTc/postgres
气流=>\c气流
您现在以用户“airflow”的身份连接到数据库“airflow”。
气流=>\dt
没有找到关系。
气流=>\conninfo
您通过端口“5432”处“/var/run/postgresql”中的套接字以用户“airflow”的身份连接到数据库“airflow”。
[root@airflowetl气流]#cat/var/lib/pgsql/data/pg#u hba.conf
....
#类型数据库用户地址方法
#“本地”仅用于Unix域套接字连接
本地所有对等
#IPv4本地连接:
#主机所有127.0.0.1/32标识
托管所有0.0.0.0/0信任
#IPv6本地连接:
主机所有::1/128标识
#允许具有的用户从本地主机进行复制连接
#复制权限。
#本地复制postgres对等
#主机复制postgres 127.0.0.1/32标识
#主机复制postgres::1/128标识
[root@airflowetl气流]#cat/var/lib/pgsql/data/postgresql.conf
....
# — — — — — — — — — — — — — — — — — — — — — — — — — — — — — 
#连接和身份验证
# — — — — — — — — — — — — — — — — — — — — — — — — — — — — — 
#-连接设置-
#侦听地址='localhost'#要侦听的IP地址;
监听气流连接的地址='*'#
[airflow@airflowetl气流]$cat afflow.cfg
....
[核心]
....
#气流应使用的执行器类。选择包括
#顺序执行器、本地执行器、CeleryExecutor、DaskExecutor、Kubernetesecutor
#执行者=顺序执行者
executor=LocalExecutor
#指向元数据数据库的SqlAlchemy连接字符串。
#SqlAlchemy支持许多不同的数据库引擎,更多信息
#他们的网站
#sql\u炼金术\u连接=sqlite:////home/airflow/airflow/airflow.db
sql\u alchemy\u conn=postgresql+psycopg2://气流:mypassword@localhost:5432/空气流量
也不太确定这里会出什么问题。使用sql\U alchemy\U conn字符串中的密码,我能够执行“psql-U afflow--password”并成功登录,因此不确定身份验证的目的是什么

我注意到一件奇怪的事情是,
pg_hba.conf
行有:

#IPv4本地连接:
#主机所有127.0.0.1/32标识
托管所有0.0.0.0/0信任
然而,postgres似乎仍在尝试使用ident身份验证(尽管此时我多次重启了postgresql服务)


任何人有任何进一步的调试建议或可以在这里看到错误?

我正在与我的本地版本进行比较,其中一个区别是我的airflow db的所有者是用户“airflow”,在您的案例中是“postgres”。请运行此命令: 将数据库气流所有者更改为气流

问候
xavy

我正在与我的本地数据库进行比较,其中一个区别是我的airflow db的所有者是用户“airflow”,在您的案例中是“postgres”。请运行此命令: 将数据库气流所有者更改为气流

问候
xavy

你似乎在与

host    all             all             ::1/128                 ident

如果您没有使用IPv6,最好只注释掉这一行,然后重试

您似乎要匹配的内容

host    all             all             ::1/128                 ident

如果您不使用IPv6,最好只注释掉该行,然后重试

您可能希望删除此内容,并将此帖子作为
注释
放在问题帖子下方。在任何情况下,
afflow.cfg
连接字符串都已滚动到格式化文本块的底部。您可能希望删除此内容,并将此帖子作为
注释
放在问题帖子本身的下方。在任何情况下,
airflow.cfg
连接字符串都已滚动到格式化文本块的底部。调试建议在Postgres日志上显示详细信息,并查看是否可以获得更多信息,如pg_hba.conf的哪一行匹配调试建议在Postgres日志a上显示详细信息