所以,我一直在设置pg_dumpall
,但如果没有输入密码我就无法工作。
我试过了:
How to pass in password to pg_dump?
然后到这里:
http://www.postgresql.org/docs/8.4/static/libpq-pgpass.html
但仍然没有运气。
我的字符串和反应:
pg_dumpall -U user > /path/to_my/folder/test2.sql
Password:
Password:
Password:
Password:
Password:
Password:
Password:
Password:
Password:
Password:
(当我让它在没有密码的情况下工作时,我会把它变成一个bash脚本)
我尝试使用-w
但除非有密码否则不会转储。我也把.pgpass文件放在我的主目录中,并尝试将它们移动到其他用户的主目录。
也许我只是没有让我的文件正确或我不知道它可能是在错误的地方但是这里是:
*:*:*:user:password
任何帮助都会很棒 感谢
答案 0 :(得分:2)
我不确定PGPASSWORD环境变量在哪里
默认情况下,它永远不会设置在任何位置。
但无论如何,在本地使用它可能更简单:
PGPASSWORD=yourpassword pg_dumpall -U user > /path/to_my/folder/test2.sql
这样做,变量只会在转储期间存在。
编辑关于此技术的安全性:
在postgres手册中,@Peter's comment可能与此警告有关:
出于安全原因,不建议使用此环境变量 某些操作系统允许非root用户查看进程环境 变量通过ps
但某些操作系统非常模糊,并且环顾四周似乎没有人真正认为现代操作系统存在任何此类缺陷。
security.SE涵盖了我觉得有用的相关Q& A中的主题:
Is passing sensitive data through the process environment secure?
environment variable accessibility in Linux
就个人而言,我很高兴能够绕过postgres安全警告。但这不应该阻止任何人对自己的操作系统进行自己的研究,特别是如果它是异国情调或过时的。