Ubuntu服务器,postgresql,python,“Peer auth失败”

时间:2014-02-17 18:56:01

标签: python postgresql ubuntu

嗨,我得到以下内容,我见过的其他解决办法似乎没有起作用...... 在ubuntu服务器终端(virtualbox vm)中: 错误致命错误:用户“a4apps”的对等身份验证失败

我的Ubuntu服务器os用户名是一样的。 我重新开始了我的postgres。 我试过通过以下方式更改我的pg_hba.conf文件: 将IPv4主机方法从md5更改为“trust” 并在其下添加一行“host all all myubuntuserverip / 32 trust”

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

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

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

我正在学习本教程:here

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

1 个答案:

答案 0 :(得分:3)

此特定错误消息:

  

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

表示已根据peer 选择了pg_hba.conf身份验证方法,表明操作系统用户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中的相应规则。