DB:Postgres 9.0客户端:Windows 7 Server Windows 2008,64位
我试图远程连接到一个postgres实例来执行一个pg_dump到我的本地机器。
一切工作从我的客户端机器,除了我需要在密码提示提供密码,我最终希望批处理脚本。
我按照这里的说明:
http://www.postgresql.org/docs/current/static/libpq-pgpass.html
但它不工作。
回顾一下,我在客户端上创build了一个文件(并尝试了服务器):C:/Users/postgres/AppData/postgresql/pgpass.conf,其中postgresql是db用户。
该文件具有以下数据的一行:
\*:5432:\*postgres:[mypassword]
(也尝试明确的ip / dbname值,所有的星号,以及之间的每个组合。
(我也试着用[localhost | myip]和[mydatabasename]分别replace每个'*'。
从我的客户端机器上,
pg_dump -h [myip] -U postgres -w [mydbname] > [mylocaldumpfile]
我假设我需要提供'-w'开关,以便忽略密码提示,此时它应该在服务器上的AppData目录中查找。
它只是回来“与数据库连接失败:fe_sendauth:没有密码提供。
任何见解都表示赞赏。
作为一个黑客的解决方法,如果有一种方法,我可以告诉我的客户端机器上的Windowsbatch file,以在postgres提示符处注入密码,那也可以。
谢谢。
请使用这个脚本来生成备份。
PGPASSWORD='database password' PGUSER='database user' PGHOST='localhost' PGPORT='psql portno' PGDATABASE='database name' pg_dump -Ft <database name> -x -O -f '<backup file name.tar>'
我会尝试相当于strace
来查看它是否在pgpass.conf
,以及它在哪里寻找pgpass.conf
。
-w
选项是不必要的,与您的问题无关。