通过psycopg2以root身份连接到PostgreSQL

时间:2014-07-02 17:27:37

标签: python postgresql supervisord

我正在尝试使用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。

1 个答案:

答案 0 :(得分:1)

解决方案是指定主机,以便psycopg2不使用套接字:

conn = psycopg2.connect(database="dbname", user="username", host="127.0.0.1")