python - Ubuntu 服务器,postgresql,python, "Peer auth failed"

标签 python postgresql ubuntu

您好,我收到了以下信息,我看到的其他解决方案似乎都没有用... 在 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/

相关文章:

ruby-on-rails - 计算 Active Admin 仪表板(Rails、Active admin 1.0、Postgresql 数据库、postgres_ext gem)中序列化属性(数组)中值的出现次数

python - PIP 安装 PIL python2.7 ubuntu 14.04.1

python - scrapy 引发异常从项目目录外部运行

python - PySpark 中别名方法的用途是什么?

postgresql - 我如何在 postgreSQL 中执行此 SQL 查询?

ubuntu - 缓慢的 Ubuntu SSH 登录

linux - Ubuntu:使用 curl 下载图像

python - "Risk"骰子游戏列表索引错误

python - 有限的文本 block 被新行分割

PostgreSQL:pg_dump 失败,权限被拒绝