在 PgAdmin 中取回服务器提示错误“致命:用户“postgres”的密码验证失败”

Posted

技术标签:

【中文标题】在 PgAdmin 中取回服务器提示错误“致命:用户“postgres”的密码验证失败”【英文标题】:Getting back Server in PgAdmin prompts error "FATAL: password authentication failed for user "postgres"" 【发布时间】:2021-01-08 19:31:45 【问题描述】:

我最近在运行 Ubuntu 18.04.5 LTS 的笔记本电脑上安装了 PostgreSQL 12 和 PgAdmin 4。

一切都很好,我打开 PgAdmin 4,它要求我输入密码,我输入密码 admin,然后我能够在 PgAdmin 4 中看到主窗口。不幸的是,我错误地删除了我可以通过 PgAdmin 看到的服务器,但现在我没有。

当我尝试使用密码 admin 创建新服务器 "PostgreSQL 12" 时,请参见下图

我收到以下错误:

无法连接到服务器:

致命:用户“postgres”的密码验证失败

我已经看到这些线程:Postgresql: password authentication failed for user “postgres” 和 FATAL: password authentication failed for user “postgres” (postgresql 11 with pgAdmin 4),但没有一个解决方案可以帮助我,即输入像 adminidentpostgrespassword 这样的密码,我的 Ubuntu 帐户的密码, 空密码。空密码提示通知

无法连接到服务器:

fe_sendauth:未提供密码

可能 PostgreSQL 运行正常,因为我可以看到我为项目创建的表并且我也可以操作它们。

\l 命令的结果显示:

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges    
-----------+----------+----------+-------------+-------------+------------------------
 postgres  | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres           +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres           +
           |          |          |             |             | postgres=CTc/postgres
 test_db   | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =Tc/postgres          +
           |          |          |             |             | postgres=CTc/postgres +
           |          |          |             |             | test_user=CTc/postgres
(4 rows)

\du 的结果给出:

psql (12.5 (Ubuntu 12.5-1.pgdg18.04+1))
Type "help" for help.

postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | 
 test_user |                                                            | 

SELECT * FROM pg_roles 的结果是:

          rolname          | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypas-s-rls | rolconfig |  oid  
---------------------------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+-------
 pg_signal_backend         | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  4200
 pg_read_server_files      | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  4569
 postgres                  | t        | t          | t             | t           | t           | t              |           -1 | ********    |               | t            |           |    10
 pg_write_server_files     | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  4570
 pg_execute_server_program | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  4571
 pg_read_all_stats         | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  3375
 pg_monitor                | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  3373
 pg_read_all_settings      | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  3374
 pg_stat_scan_tables       | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           |  3377
 test_user                 | f        | t          | f             | f           | t           | f              |           -1 | ********    |               | f            |           | 16385

重新安装 PostgreSQL 和 PgAdmin 也没有解决我的问题。

那么,我的问题是如何解决我面临的问题,以便能够在 PgAdmin 中查看我的表?

【问题讨论】:

psql \du 显示什么?还有select * from pg_roles?请将结果作为文本复制并粘贴到您的问题中。图片不应用于传达文字信息。 您在 PgAdmin 启动期间输入的密码与您的 postgres 数据库集群的密码无关。在 PgAd Create-Server 对话框中使用您用于通过 psql 进行连接的相同凭据。 @clamp,不幸的是它不起作用...... 【参考方案1】:

我遇到了这个问题。我意识到我最初设置的端口与我试图重新创建的端口不同。切换并工作。

【讨论】:

以上是关于在 PgAdmin 中取回服务器提示错误“致命:用户“postgres”的密码验证失败”的主要内容,如果未能解决你的问题,请参考以下文章

AWS RDS到PgAdmin错误保存属性无法连接到服务器:超时已过期[关闭]

连接 pgadmin AWS-RDS 时遇到问题

为啥我在 pgAdmin 4 上收到 schema public 的权限被拒绝错误?

无法使用 pgAdmin III 客户端连接到 Heroku DB

如何在OpenShift中运行pgAdmin?

PgAdmin III,打开服务器状态给出“编码UTF8的无效字节序列”