严重错误:用户"postgres"的密码身份验证失败 (postgresql 11 with pgAdmin 4)
严重错误:用户"postgres"的密码身份验证失败 (postgresql 11 with pgAdmin 4)
我最近安装了Postgresql 11,在安装过程中,没有要求为Postgres设置密码和用户名。现在在pgAdmin 4中,我想将数据库连接到服务器,但它要求我输入密码,而我一开始没有设置任何密码。 有人知道发生了什么,请谢谢!
PostgreSQL的默认身份验证模式设置为ident。
您可以通过pgAdmin -> Files -> open pgpass.conf
访问您的pgpass.conf。
这将在窗口底部给出pgpass.conf
的路径(官方文档)。
知道位置后,您可以打开此文件并根据需要进行编辑。
如果这不起作用,则可以:
-
找到您的
pg_hba.conf
,通常位于C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
下 -
如果必要的话,设置其权限以便您可以修改它。您的用户帐户可能无法这样做,直到您使用属性对话框中的安全选项卡通过使用管理员覆盖来授予自己该权利。
-
或者,在开始菜单中找到
notepad
或notepad++
,右键单击,选择“以管理员身份运行”,然后使用File->Open
以这种方式打开pg_hba.conf
。 -
编辑它以将用户“postgres”在主机“127.0.0.1/32”上的“host”行设置为“trust”。如果该行不存在,则可以添加该行;只需在任何其他行之前插入
host all postgres 127.0.0.1/32 trust
即可(可以忽略以#开头的注释行)。 -
从服务控制面板(
start->run->services.msc
)重新启动PostgreSQL服务 -
使用
psql
或pgAdmin4或您喜欢的任何程序进行连接 -
运行
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
或其他在此处列出的身份验证方法(此处)。