请帮帮我..我对pgAgent有一些疑问。

[环境]

DB : PostgreSQL 9.3

OS : Window 7

OS login ID : [email protected]

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> Statistics)

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


(什么数据库?有2个DB。“ 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 : [email protected]

pwd : [ [email protected]'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.


我说过我的操作系统登录ID是[email protected]

但是[email protected]的真实姓名(C:\ Users中的文件夹名称)是“ SOME NAME TEST”。

那不一样 !!

当我检查服务中的登录ID时,pgAgent的登录ID为“。\ [email protected]”。

我猜pgAgent试图在'C:\ Users \ [email protected] \ 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 )


就是这样! ^^

并将pgpass.conf放在'C:\ Users \ anyname \ AppData \ Roaming \ postgresql'中

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

现在效果很好^^

关于windows-7 - pgAgent无法连接数据库:“fe_sendauth:未提供密码”(在Windows7中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29715889/

10-12 01:26