Ubuntu服务器、postgresql、python;对等身份验证失败”;

Ubuntu服务器、postgresql、python;对等身份验证失败”;,python,postgresql,ubuntu,Python,Postgresql,Ubuntu,嗨,我得到了以下信息,我看到的其他解决方案似乎不起作用。。。 在ubuntu服务器终端(virtualbox vm)内: 致命错误:用户“a4apps”的对等身份验证失败 我的Ubuntu服务器os用户名是相同的。 我重新开始了我的博士后课程。 我已尝试通过以下方式更改我的pg_hba.conf文件: 将IPv4主机方法从md5更改为“信任” 在下面添加一行“HostAll myubuntuserverip/32 trust” 我试图通过python脚本访问它。 我在用psycopg con =

嗨,我得到了以下信息,我看到的其他解决方案似乎不起作用。。。 在ubuntu服务器终端(virtualbox vm)内: 致命错误:用户“a4apps”的对等身份验证失败

我的Ubuntu服务器os用户名是相同的。 我重新开始了我的博士后课程。 我已尝试通过以下方式更改我的pg_hba.conf文件: 将IPv4主机方法从md5更改为“信任” 在下面添加一行“HostAll myubuntuserverip/32 trust”

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

con = psycopg2.connect(database='fieldtest2', user='a4apps')
我创建了用户:sudo-u postgres创建用户a4apps 超级用户否,创建数据库是,创建其他用户否。 创建的数据库:sudo-u postgres createdb fieldtest2-O a4apps

我遵循本教程:

我的点子快用完了。任何指导都将不胜感激。 谢谢
Mike

此特定错误消息:

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

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

默认的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 #通过Unix域套接字进行数据库管理登录 本地所有博士后同侪 #类型数据库用户地址方法 #“本地”仅用于Unix域套接字连接 本地所有对等 要允许除
postgres
之外的任何用户进行本地无密码连接,您可以在最后一行中用
trust
替换
peer


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

中的相应规则,这非常有用。非常感谢。它起作用了,我现在明白为什么了。只需记住在更改后重新启动postgres。