我正在尝试使用supervisord
运行Python服务,该服务需要以root身份运行(sudo supervisorctl
)。 Python服务尝试使用psycopg2
通过看起来像这样的调用来连接到PostgreSQL:
conn = psycopg2.connect("dbname=db_name user=user_name")
执行此操作时,我收到错误FATAL: Peer authentication failed for user "user_name"
。我也试过了
conn = psycopg2.connect("dbname=db_name user=postgres")
但收到相同的错误消息。从命令行我可以做到
sudo -u postgres psql db_name
并使一切按预期工作。 sudo -u user_name psql db_name
也有效。
简而言之,当Python进程以root身份运行时,我正试图弄清楚如何使用psycopg2
连接到PostgreSQL。
答案 0 :(得分:1)
解决方案是指定主机,以便psycopg2
不使用套接字:
conn = psycopg2.connect(database="dbname", user="username", host="127.0.0.1")