【问题标题】:Ubuntu server, postgresql, python, "Peer auth failed"Ubuntu 服务器、postgresql、python,“对等身份验证失败”
【发布时间】:2014-03-17 05:18:10
【问题描述】:

您好,我收到以下内容,而我为此看到的其他解决方案似乎不起作用... 在 ubuntu 服务器终端(一个 virtualbox vm)中: 致命错误:用户“a4apps”的对等身份验证失败

我的 Ubuntu 服务器操作系统用户名是一样的。 我已经重新启动了我的 postgres。 我尝试通过以下方式更改我的 pg_hba.conf 文件: 将 IPv4 主机方法从 md5 更改为“信任” 并在其下添加一行“托管所有所有 myubuntuserverip/32 信任”

我正在尝试通过 python 脚本访问它。 我正在使用psycopg

con = psycopg2.connect(database='fieldtest2', user='a4apps')

我创建了用户:sudo -u postgres create user a4apps 超级用户不,创建数据库是,创建其他用户不。 创建的数据库:sudo -u postgres createdb fieldtest2 -O a4apps

我正在关注本教程:here

我的想法已经不多了。任何指导将不胜感激。 谢谢 迈克

【问题讨论】:

    标签: python postgresql ubuntu


    【解决方案1】:

    这个具体的错误信息:

    用户“a4apps”的对等身份验证失败

    表示根据pg_hba.conf 选择了peer 身份验证方法并且操作系统用户a4apps 未进行连接尝试,这与此身份验证方法的要求相反。 p>

    默认的 Ubuntu pg_hba.conf 有以下几行:

    # 通过 Unix 域套接字进行数据库管理登录 本地所有 postgres 同行 # 类型数据库用户地址方法 # "local" 仅适用于 Unix 域套接字连接 本地所有所有对等

    要允许除postgres 之外的任何用户进行本地无密码连接,您可以在最后一行将peer 替换为trust

    您在pg_hba.conf 中尝试的与 IPv4 相关的更改对您的脚本没有影响,因为它不通过 TCP/IP 连接。如果连接字符串提到了主机名,那么它将使用 TCP/IP 并触发pg_hba.conf 中的相应规则。

    【讨论】:

    • 这非常有帮助。谢谢你。它有效,我现在明白为什么了。只需要记住在更改后重新启动 postgres。
    猜你喜欢
    • 2016-03-19
    • 2020-11-30
    • 2014-07-15
    • 2014-11-03
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多