在 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),但没有一个解决方案可以帮助我,即输入像 admin
、ident
、postgres
、password
这样的密码,我的 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 4 上收到 schema public 的权限被拒绝错误?