pgAgent 无法连接数据库:'fe_sendauth: no password supplied'(在 Windows7 中)

pgAgent fails to connect database :'fe_sendauth: no password supplied' (in Windows7)

请帮助我..我有一些关于 pgAgent 的问题。

[环境]

DB : PostgreSQL 9.3

OS : Window 7

OS login ID : someid@mail.com

pgAdmin login ID : postgres

pgAgent user : postgres 

pgAgent schema belongs to: postgres DB

DB that I'll treat : testDB  (In Step configuration, I specified 'testDB' as Database.
                   Connection type is 'local'. Connection string is empty.)

DB server : local machine (my laptop computer)

我安排了 pgAgent 作业,但它无法连接数据库。

输出消息(pgAdmin>统计)

[Warning] Couldn't get a connection to the database (pgAgent)

(什么数据库?有2个数据库。'postgres'和'testDB'。我会处理'testDB'。然后无法连接到哪个数据库?)

windows 事件查看器

Failed to create new connection to database 'testDB':'fe_sendauth: no password supplied'

我的pgpass.conf

localhost:5432:postgres:postgres:[pgAdmin password for postgres]
localhost:5432:testDB:postgres:[pgAdmin password for postgres]

我的pg_hba.conf

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only

@remove-line-for-nolocal@local   all             all                                     @authmethodlocal@
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 @authmethodhost@
# Allow replication connections from localhost, by a user with the
# replication privilege.
@remove-line-for-nolocal@#local   replication     @default_username@                                @authmethodlocal@
#host    replication     @default_username@        127.0.0.1/32            @authmethodhost@
#host    replication     @default_username@        ::1/128                 @authmethodhost@

我的 pgAgent 命令选项(服务>pgAgent>属性>常规选项卡)

C:\Program Files (x86)\pgAgent\bin\pgagent.exe RUN pgAgent host=localhost port=5432 user=postgres dbname=postgres

pgAgent 服务登录 ID(服务>pgAgent>属性>登录选项卡)

id : someid@mail.com

pwd : [ someid@mail.com's password ]

[结论]

据我所知,pgpass.conf 中的密码设置似乎是错误的。 或 pg_hba.conf 或服务>pgAgent>登录中的登录ID 其实..我真的不明白哪里不对。^^

提前感谢您的帮助^^

美好的一天...我解决了^^

[解决方案]

I made other OS login ID. (NOT need to be 'postgres' !!)
And put pgpass.conf in that ID's AppData\Roaming\postgresql

[原因]

pgAgent could not find pgpass.conf in login ID's directory.

我说我的 OS 登录 ID 是 someid@mail.com。

但是someid@mail.com的真实姓名(C:\Users中的文件夹名)是'SOME NAME TEST'

这是不同的!!

当我在服务中检查登录 ID 时,pgAgent 的登录 ID 是'.\someid@mail.com'。

我猜 pgAgent 试图在 'C:\Users\someid@mail.com\AppData\Roaming\postgresql'.

中找到 pgpass.conf

但是没有那个目录!!

我的 pgpass.conf 在 'C:\Users\SOME NAME TEST\AppData\Roaming\postgresql'

我随便弄了个OS ID 'anyname'。 (控制面板>账户管理。)

login ID : anyname

real name : anyname ( C:\Users\anyname )

一样!! ^^

并在'C:\Users\anyname\AppData\Roaming\postgresql'

中放置pgpass.conf

然后在服务中将 pgAgent 的登录 ID 更改为 '.\anyname'。

现在效果很好^^

SET PGPASSWORD=<PassWord>
pg_dump -h <HostName> -p 5432 -U <UserName> -F c -b -v -f %BACKUP_FILE% <DATABASENAME>

来源:https://wiki.postgresql.org/wiki/Automated_Backup_on_Windows