首页 > 解决方案 > PostgreSQL:致命:用户“postgres”的密码验证失败

问题描述

我有一个使用 AWS EC2 实例的 ThingsBoard 专业版设置。数据库是 PostgreSQL-12。我倾向于收到以下错误:FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres" 尝试登录 pgAdmin4 上的远程数据库服务器时。

这是尝试登录在 pgAdmin4 上创建的服务器时显示的错误的屏幕截图。 这是我配置远程数据库服务器的方式(其中主机名/地址是我的 EC2 实例的公共 IPv4)。连接服务器错误

创建服务器

postgresql.conf中,我已将 listen_address='127.0.0.1' 行替换为listen_addresses='*'.
pg_hba.conf,我补充说host all all 0.0.0.0/0 md5
这是我的 pg_hba.conf 文件的屏幕截图: 我还使用 psql 命令为用户“postgres”设置了密码。
pg_hba.conf
#\password

这是我运行命令时在thingboard.log 中显示的内容:
cat /var/log/thingsboard/thingsboard.log | grep ERROR 日志文件

部分截图/var/log/postgresql/postgresql-12-main.log显示如下:
PostgreSQL 日志

我必须经常使用#ALTER USER postgres PASSWORD ‘<password>’;才能克服这个错误,但是当我重新启动本地 Windows 机器时,错误往往会返回。

标签: postgresqlpgadmin-4thingsboardpostgresql-12

解决方案


这必须由 PostgreSQL 以外的一些软件来完成。

通过设置并重新启动数据库log_statement = 'ddl'来配置日志记录。postgresql.conf然后您可以更轻松地确定您的密码何时以及通过哪个软件被更改。

此外,配置pg_hba.conf为不允许从任何地方进行无密码连接,然后更改密码。您可能会看到一些组件开始抱怨 - 该组件可能有问题。


推荐阅读