如果我将PGPASSFILE
设置为像/home/user/.pgpass
这样的显式路径,那么它工作正常,当以拥有该文件的用户身份登录时,我可以使用psql
作为.pgpass.conf
中的条目。
我遇到的问题是我需要有多个帐户使用psql。如果我将PGPASSFILE
更改为~/.pgpass.conf
之类的用户目录,那么它不起作用并且不会读取文件,因此它会给出密码错误。
因为我只能指定一个文件,这意味着只有该文件的所有者才能运行我需要运行的命令。
我在Ubuntu 18.04上运行,我需要root和www-data才能有一个.pgpass.conf
文件。
我该怎么做呢?
如果您的系统用户对应于您的数据库用户(在您的情况下为root
和www-data
),则每个用户在其各自的主目录中都有自己独立的.pgpass
文件。相应地设置每个。
根本就不要设置PGPASSFILE
。 The manual:
PGPASSFILE
的行为与passfile连接参数相同。
passfile
指定用于存储密码的文件的名称(请参阅Section 33.15)。在Microsoft Windows上默认为
~/.pgpass
或%APPDATA%\postgresql\pgpass.conf
。 (如果此文件不存在,则不会报告错误。)
有关: