连接到PostgreSQL时,python无法使用.pgpass

时间:2015-03-08 21:00:19

标签: python postgresql

使用python脚本连接到postgresql db时我不能使用.pgpass文件((( 我连接的python脚本没有密码:

conn = psycopg2.connect("dbname='postgres' user='postgres' host='192.168.136.129'");

我的 .pgpass:

*:*:*:postgres:password

位于 / var / lib / postgresql - postgres用户的主目录。 但是当我在本地连接到db时:

psql -U postgres

没有密码被问到。但是对于python错误提出了:

root@debian:/python_codes/Junior/Level1/DB1/Generator_py# python connect_db.py 
Unable to connect to db...
Traceback (most recent call last):
  File "connect_db.py", line 34, in connectdb
    conn = psycopg2.connect("dbname='postgres' user='postgres' host='192.168.136.129'");
  File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
    connection_factory=connection_factory, async=async)
OperationalError: fe_sendauth: no password supplied

1 个答案:

答案 0 :(得分:3)

根据此输出的提示:

  

root @ debian:/ python_codes / Junior / Level1 / DB1 / Generator_py #python   connect_db.py

您以Unix用户root运行commmand,因此相应的.pgpass文件必须位于root HOME目录中,这意味着不是{{} 1}}但可能是/var/lib/postgresql/root

此外,其所有权必须限制为所有者可读,即/