python - Ident 连接通过 psycopg2 失败,但通过命令行工作

标签 python postgresql authentication psycopg2

当我尝试使用像这样的代码(以“用户名”运行 python)通过 psycopg2 连接到我的 postgres 服务器时:

psycopg2.connect(database="apis_master")

我得到一个错误

psycopg2.OperationalError: FATAL:  Ident authentication failed for user "username"

但是当我直接从命令行(作为用户“用户名”)运行 psql 时:

psql -d apis_master

我连接没问题。

我看不出这两种连接方式有什么不同。我是否缺少 psycopg2 的一些配置选项?

最佳答案

您的命令行用户和您的 python 用户不同。当您实例化 psycopg2 对象时,传递用户凭据:

db = psycopg2.connect(
                     host = 192.168.0.1, # example IP, use 'localhost' if local, otherwise the IP of the server where Postgre is located.
                     database = 'apis_master'
                     user = 'my_db_user',
                     password = 'my_db_password'
                     )

这应该可以解决您的连接问题。

关于python - Ident 连接通过 psycopg2 失败,但通过命令行工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15692437/

相关文章:

python - 从另一个 sikuli 项目运行 Sikuli 文件

python - 删除CSV文件Python中的空白条目

python - App Engine 实体到字典

sql - 函数调用的属性表示法给出错误

r - 使用 RPostgreSQL 将数据写入表而不改变结构

postgresql - 当我使用 "sslmode=verify-full"时,连接到 Azure 上的 postgres 服务器失败

python - gtk.ScrolledWindow 具有 gtk.TextView 显示固定的第一行

authentication - 登录失败 : unknown user name or bad password

authentication - JAAS - isUserInRole 为 Tomcat 中的所有角色返回 false

security - 如何让一台服务器上的多个站点使用一个SSL证书登录?