首页 > 解决方案 > 致命:用户“postgres”的密码验证失败(带有 pgAdmin 4 的 postgresql 11)

问题描述

我最近安装了 Postgresql 11,在安装过程中,没有为 Postgres 输入密码和用户名的步骤。现在在 pgAdmin 4 中,我想将数据库连接到服务器,它要求我输入密码,而我一开始没有输入任何密码。任何人都知道发生了什么。谢谢!

标签: postgresqlpgadmin-4postgresql-11

解决方案


PostgreSQL 的默认身份验证模式设置为ident

您可以通过以下方式访问您的 pgpass.confpgAdmin -> Files -> open pgpass.conf

在此处输入图像描述

pgpass.conf这将为您提供窗口底部的路径(官方文档)。

知道位置后,您可以打开此文件并根据自己的喜好对其进行编辑。

如果这不起作用,您可以:

  • 找到您的pg_hba.conf, 通常位于C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf

  • 如有必要,设置它的权限,以便您可以修改它。您的用户帐户可能无法执行此操作,直到您使用属性对话框中的安全选项卡通过使用管理员覆盖来授予自己该权限。

  • 或者,在您的开始菜单中找到notepadnotepad++,右键单击,选择“以管理员身份运行”,然后使用该方式File->Open打开pg_hba.conf

  • 编辑它以将主机“127.0.0.1/32”上的用户“postgres”的“主机”行设置为“信任”。如果该行不存在,您可以添加该行;host all postgres 127.0.0.1/32 trust只需在任何其他行之前插入。(您可以忽略注释,以# 开头的行)。

  • 从服务控制面板重新启动 PostgreSQL 服务 ( start->run->services.msc)

  • 使用psqlpgAdmin4 或任何您喜欢的方式连接

  • ALTER USER postgres PASSWORD 'fooBarEatsBarFoodBareFoot'

  • 删除您添加到 pg_hba.conf 的行或将其改回

  • 再次重新启动 PostgreSQL 以使更改生效。

这是文件的示例pg_hba.conf METHOD 已设置为trust):

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

# IPv6 local connections:
host    all             all             ::1/128                 trust

注意:请记住在更改密码后将 METHOD 改回或此处md5列出的其他身份验证方法(如上所述)。


推荐阅读