我在Windows服务器环境中安装了Postgresql数据库。我想没有要求输入密码才能计划使用Windows任务调度运行,每天晚上,所以我需要运行下面的命令作业:psql要求输入密码并且不能从pgpass.conf中读取
psql -U myUserName-d myDBName -c "select MyFunctionName()"
当我在cmd
shell中运行上面的查询,它问我密码。当我手动输入密码时,该功能正确运行。
所以我的解决方案是从pgpass.conf
文件读取,所以不需要密码。
这里是我做了实现这一目标的事情:
我在我的%appdata%
创建(AppData\Roaming\postgresql
要准确)的目录中创建的文件pgpass.conf
。
下面是这个文件的内容:
localhost:5432:myDBName:myUserName:myPassword
我也试图与价值127.0.0.1
,而不是上面localhost
。
我,然后,添加一个环境变量(在用户变量对于管理员列表)称为PGPASSFILE
并赋予它pgpass.conf
位置。
;C:\Users\administrator\AppData\Roaming\postgresql\pgpass.conf
最后,我停止并重新启动Windows服务上的Postgres服务并重新运行该命令。但它仍在要求输入密码。
如何让我的命令知道从哪里读取密码?
在文件名起始处的';'看起来不对 –
@a_horse_with_no_name我尝试了使用和不使用它。但它似乎没有什么区别。 – Disasterkid
您是否尝试在cmd提示符下首先设置PGPASSFILE? –