如果我将PGPASSFILE
设置为像/home/user/.pgpass
这样的显式路径,那么它可以正常工作,并且当作为拥有该文件的用户登录时,我可以对psql
中的条目使用.pgpass.conf
。
我的问题是我需要有多个帐户使用psql。如果我将PGPASSFILE
更改为类似于~/.pgpass.conf
的用户目录,那么它将不工作,也不会读取文件,因此会出现密码错误。
因为我只能指定一个文件,这意味着只有该文件的所有者才能运行我需要运行的命令。
我在Ubuntu 18.04上运行,需要根和www数据才能有一个.pgpass.conf
文件。
我该怎么做?
最佳答案
如果系统用户与数据库用户相对应(在您的情况下,root
和www-data
),则每个用户在其各自的主目录中都有自己的、独立的.pgpass
文件。分别设置。
根本不设置PGPASSFILE
。The manual:PGPASSFILE
的行为与passfile连接参数相同。
And:passfile
指定用于存储密码的文件名(请参见Section 33.15)。默认为~/.pgpass
,或%APPDATA%\postgresql\pgpass.conf
在Microsoft Windows上。(没有错误
报告此文件是否不存在。
相关:
Run batch file with psql command without password
关于postgresql - .pgpass文件可用于多个用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52381567/