您好,我收到了以下信息,我看到的其他解决方案似乎都没有用... 在 ubuntu 服务器终端(一个 virtualbox 虚拟机)中: fatal error :用户“a4apps”的对等身份验证失败
我的 Ubuntu 服务器 os 用户名是相同的。 我已经重新启动了我的 postgres。 我尝试通过以下方式更改我的 pg_hba.conf 文件: 将 IPv4 主机方法从 md5 更改为“信任” 并在其下添加一行“host all all myubuntuserverip/32 trust”
我正在尝试通过 python 脚本访问它。 我正在使用 psycopg
con = psycopg2.connect(database='fieldtest2', user='a4apps')
我创建了用户:sudo -u postgres create user a4apps super 用户 否,创建数据库 是,创建其他用户 否。 创建数据库:sudo -u postgres createdb fieldtest2 -O a4apps
我正在学习本教程:here
我的想法已经用完了。任何指导将不胜感激。 谢谢 迈克
最佳答案
此特定错误消息:
Peer authentication failed for user "a4apps"
表示根据 pg_hba.conf
选择了 peer
身份验证方法 并且 操作系统用户未尝试连接 a4apps
,与此 auth 方法的要求相反。
默认的 Ubuntu pg_hba.conf
有这些行:
# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer
要允许除 postgres
之外的任何用户进行本地无密码连接,您可以在最后一行将 peer
替换为 trust
。
您在 pg_hba.conf
中尝试的与 IPv4 相关的更改对您的脚本没有影响,因为它不通过 TCP/IP 连接。如果连接字符串提到主机名,它将使用 TCP/IP 并触发 pg_hba.conf
中的相应规则。
关于python - Ubuntu 服务器,postgresql,python, "Peer auth failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837075/