2013-04-07 82 views
3

我已经使用名为postgres的本地计算机帐户在Windows服务中安装了pgAgent。我已确认Windows服务正常运行。我在pgAdmin中创建了一个应该从客户数据库中的表中删除某些记录的作业。作业中唯一的步骤是使用到客户数据库的本地连接类型进行配置。问题是,作业失败,并写入Windows事件日志以下警告每次:pgAgent作业失败并出现身份验证错误

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

我已经验证,有位于C一pgpass.conf文件:\用户\ Postgres的\ AppData的\漫游\ PostgreSQL的。下面是它的内容:

localhost:5432:postgres:postgres:<password_redacted>

我不知道什么尝试。我一直无法找到有关此错误消息的更多信息,因为它适用于pgAgent。

版本信息:

  • 的PostgreSQL 9.2.4,采用Visual C++编译建立1600,64位
  • pgAdmin的1.16.1
  • pgAgent v3.3.0-1

Windows服务启动信息:

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

的pg_hba.conf的非发言内容:

host all    all    127.0.0.1/32   md5 
host all    all    ::1/128     md5 
+0

你忘了顶部提到你的Postgres和pgAdmin版本。 DB日志中的任何内容?你的'pg_hba.conf'里有什么。是否阅读[这个相关的答案](http://stackoverflow.com/questions/15359348/run-batch-file-with-psql-command-without-password/15593100#15593100)帮助(特别是有关Windows的部分)? – 2013-04-07 20:38:49

+0

按要求添加。另外,另一篇文章涉及psql.exe,因此问题不尽相同。这是Windows服务的事实使得更难以调试IMO。 – NathanAldenSr 2013-04-07 21:03:49

+0

我想知道这是否与localhost与本地有关?即使如此,我仍然不确定究竟必须改变什么。 – NathanAldenSr 2013-04-07 21:15:00

回答

2

我所做的就是这份工作的PgAgentIII

台阶下,我改变了连接类型的远程 设置连接字符串与按钮... enter code here改变了用户的Postgres =我的应用程序的用户名 enter code here添加密码= PASSWORD(填写您的密码) enter code here更改主机= 127.0.0.1

我知道更长时间得到错误

我希望这会有所帮助。

岩石更多PostgreSQL

+2

即使这确实起作用,我仍然有兴趣了解如何使本地连接正常工作。 – NathanAldenSr 2013-04-11 13:12:26

0

我碰到了与pgAgent作业步骤同样的问题,配置为本地连接:
有把密码输入到连接字符串 Failed to create new connection to database '<database_name>':'fe_sendauth: no password supplied'

解决方案工作正常,但似乎没有安全感。

周围挖我找到了另一种解决方案后 - 添加连接字符串pgpass.conf为步的目标数据库解决问题:
localhost:5432:<database_name>:postgres:<password>

-1

确保检查用户名pgAdmin的服务和您正在检查的pgpass.conf文件的用户名匹配。我遇到同样的问题,直到我意识到pgadmin安装程序已将服务设置为以本地用户身份运行,并且我正在检查与域用户相同的用户名pgpass.conf。