我正在尝试使用 Postgres 开发一个 Python 应用程序。不幸的是,每次我做
db.session.commit()
我得到这个错误:
OperationalError: (OperationalError) fe_sendauth: no password supplied None None
在尝试了 pg_hba.config 文件后,我仍然收到相同的错误。相应的文件目前如下:
# Database administrative login by Unix domain socket
local all postgres peer
local all alex trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
有人能帮我正确配置这个在 Ubuntu 14.04 上运行的文件吗?
答案1
非常棒的演练..... https://help.ubuntu.com/community/PostgreSQL
首先找到文件配置信息. 通常在这里找到:
/etc/postgresql/9.3/main/pg_hba.conf
或者
/etc/postgresql/[VERSION]/main/pg_hba.conf
找到这行注释掉的内容:
# Database administrative login by Unix domain socket
并将下面的“???”更改为 md5:
local all postgres probably 'peer'
到:
local all postgres md5
这是因为 Ubuntu 使用 md5 与 postgres 而不是对等身份验证
然后运行此命令:
sudo /etc/init.d/postgresql reload