【问题标题】:pgAgent job fails with authentication errorpgAgent 作业因身份验证错误而失败
【发布时间】:2013-04-07 20:01:25
【问题描述】:

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

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

我已验证在 C:\Users\postgres\AppData\Roaming\postgresql 中有一个 pgpass.conf 文件。以下是它的内容:

localhost:5432:postgres:postgres:<password_redacted>

我不确定还可以尝试什么。我无法找到有关此错误消息的任何进一步信息,因为它适用于 pgAgent。

版本信息:

  • PostgreSQL 9.2.4,由 Visual C++ build 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

【问题讨论】:

  • 你忘了顶提你的 Postgres 和 pgAdmin 版本。数据库日志中有任何内容吗?你的pg_hba.conf 中有什么。阅读this related answer 是否有帮助(特别是关于 Windows 的部分)?
  • 按要求添加。此外,另一篇文章涉及 psql.exe,因此问题并不完全相同。这是一项 Windows 服务这一事实使得调试 IMO 变得更加困难。
  • 我想知道这是否与 localhost 与本地有关?即使是这样,我仍然不确定必须更改什么。
  • 通常,数据库日志文件包含有关登录尝试失败的其他详细信息。也许您正在尝试与不同的用户建立联系?或者pgpass.conf 没有正确的权限?
  • 我确实检查了文件的权限,是的,postgres Windows 用户对文件具有完全控制权限。我还使用 Process Monitor 验证了该文件实际上是由 pgagent.exe 打开和读取的。我检查了数据库日志文件,他们唯一说的是连接尝试失败。

标签: postgresql pgagent


【解决方案1】:

我所做的是在 PgAgentIII 的工作步骤下

我将连接类型更改为远程
使用按钮设置连接字符串 ...
将 user=postgres 更改为我的应用程序用户名
添加密码=PASSWORD(填写您的密码)
更改主机=127.0.0.1

我不再收到错误提示

【讨论】:

  • 即使这确实有效,我仍然有兴趣了解如何让本地连接正常工作。
【解决方案2】:

我在为本地连接配置的 pgAgent 作业步骤中遇到了同样的问题:
Failed to create new connection to database '<database_name>':'fe_sendauth: no password supplied'

将密码放入连接字符串的解决方案工作正常,但似乎不安全。

在四处挖掘之后,我找到了另一个解决方案 - 将连接字符串添加到 pgpass.conf 以用于 step 的 target 数据库解决问题:
localhost:5432:<database_name>:postgres:<password>

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多