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
请帮助我..我有一些关于 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