78

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

4

15 回答 15

48

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列出的其他身份验证方法(如上所述)。

于 2019-03-07T08:41:53.987 回答
34

对于 Windows 变体 - 由于 pgAdmin 为我的 Windows x64 版本 9.2 安装,我也遇到了这个讨厌的错误。它让我的生产陷入瘫痪。

在文件夹 C:\Program Files\PostgreSQL\9.2\data 或 C:\Program Files (x86)\PostgreSQL\9 中。x \data,您将找到 pg_hba.conf 文本文件。

找到以下几行:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

并将 METHOD md5 更改为“信任”,如下所示:

# 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

从 Windows>Run 键入“services.msc”并enter找到正确的 PostgreSQL 实例并重新启动它。

您的数据库安全性现在已经完全开放!在将所有相关用户的用户密码到期时间更改为 2099 年之后,请注意将其返回到 md5 的警告。

于 2020-03-23T15:40:56.377 回答
24

更改默认使用密码 ALTER USER postgres WITH PASSWORD 'new_password';

于 2021-01-16T14:29:20.147 回答
16

注意:CREATE USER 与 CREATE ROLE 相同,只是它暗示 LOGIN。

$ psql postgres
postgres=# create user postgres with superuser password 'postgres';
于 2020-02-09T18:25:02.430 回答
8

成功修改主密码后

如果即使按照主密码重置步骤后仍然出现相同的错误打开命令提示符并执行

    psql -U postgres

它会询问您的密码,输入您现在设置的新密码并行打开 SQL shell(psql) 并使用新密码重试

于 2021-07-11T14:02:49.133 回答
4

尝试psql -U postgres在安装时使用 if have put password 这是您必须使用的命令。谢谢 :)

于 2021-05-06T12:43:12.220 回答
4

选项 1:如果您使用trust

最好只trust将 pg_hba.conf 中的 postgres 更改为,然后使用 postgres 超级用户访问您的数据库,并使用 postgres 超级用户的权限添加其他用户和密码,然后将所有其他更改peermd5.

步骤:在pg_hba.conf中,更改

  • local postgrestrust
  • 不要更改local alltrust,
  • 而是local all从更改peermd5- 这意味着正确的密码足以登录。

在'Getting error: Peer authentication failed for user "postgres", when trying to get pgsql working with rails'的第二个答案中详细查看此解决方案。


选项 2:使用md5trust不需要(推荐)

这种方式更容易,因为您只需更改 pg_hba.conf 一次:

  1. 将任何本地用户从 更改peermd5,通常:
  • local postgres从更改peermd5
  • local all从更改peermd5
  1. 仅使用 Linux pw 的强大功能添加 postgres pw:

     sudo su postgres
     psql (or psql -p <port> if you have more than one PostgreSQL)
     \password
     \q
    

请参阅接受的答案和“Getting error: Peer authentication failed for user "postgres", when trying to get pgsql working with rails”的评论

于 2021-09-10T12:09:00.323 回答
2

对于 Linux 用户试试这个

//CHECK POSTGRES IS WORKING OR NOT
sudo systemctl status postgresql

//THIS WILL ACCEPT PORTS
sudo pg_isready
sudo su postgres

//NAVIGATE TO SQL TERMINAL / BASH
psql

//CREATE A NEW USER WITH PASSWORD
CREATE USER shayon WITH PASSWORD 'shayon';
于 2021-12-06T01:43:39.200 回答
1

我知道这是一个老问题,但我遇到了同样的问题,例如在使用 Postgresql 11 安装期间没有设置 Postgres 密码的对话框。

我没有执行其他答案中建议的所有文件操作,而是删除了 Postgresql 11 并安装了 Postgresql 12,在安装过程中提示我设置密码。

于 2019-12-30T14:33:37.337 回答
1

我目前在解决这个案子时很头疼。一位朋友帮助我,我决定在这里发布我的解决方案。

  1. 在任何文本编辑器中打开 pg_hba.conf (您可以在 postgres 安装文件夹 > 数据中找到此文件)
  2. 将所有方法字段更改为信任(这意味着您不需要 postgre 的密码)
  3. 在你的控制台中运行这个命令:“alter user postgres with password '[my password]';” | psql -U postgres (意思是为用户更改[我的密码]的一些用户密码作为参数-U postgres)
  4. 等等(不要忘记将信任的方法改回最适合您的方法)

我希望有一天这对某人有所帮助。

于 2021-05-18T21:04:00.960 回答
1

我已经尝试了上述所有解决方案,相信我北向工作!我已经使用以下命令解决了这个问题

  1. psql -U 默认

  2. \密码

输入新密码:

再次输入:

在此处输入图像描述

我的用户名是:默认

这对我来说非常有效。

于 2021-10-21T14:41:42.360 回答
0

如果您使用 pgAdmin4 并在更新密码时遇到错误,请按照以下步骤操作:

1]打开文件“pg_hba.conf”并找到“IPv4本地连接”

2]查看“方法”列下的值,它必须设置为“md5”,因为您在安装时选择了它。

3] 将“md5”值设为空白并保存文件。重新启动 pgAdmin4 应用程序。

4] 现在再次将值设置回“md5”并在 pgAdmin 应用程序中输入您的密码。

你应该能够成功地做到这一点。

于 2019-05-24T15:44:06.133 回答
0
  • 登录到 PgAdmin4

  • 对象 > 创建 > 登录/组角色
  • 创建在 psql 终端中命名的“用户名”
  • 创建密码
  • 给它所有的权利
  • 节省
  • 立即在 psql 终端中尝试密码。

它对我有用。

希望这对你有用。

于 2021-01-16T14:17:02.097 回答
0

您可以首次使用“超级用户”密码。

之后,您可以使用 Object > Create > Login/Group Role 更改“postgres”用户的密码。

于 2021-04-23T01:51:32.963 回答
0

我通过在本地 postgres 将 peer 更改为信任文件“pg_hba.conf”解决了这个问题,然后我使用以下命令重新启动了 postgres 服务:

sudo service postgresql restart

就是这样。

于 2021-10-05T09:32:16.750 回答