致命:用户"postgres"版本 11 的密码身份验证失败



我看过类似的问题,并尝试了一些方法,如编辑要信任的pg_hba文件,以及执行ALTER USER postgres PASSWORD'newPassword';但两者都不起作用。在做出这样的改变后,我确实重新启动了postgres。

上下文是,我有一个为我工作的公司提供的web应用程序,我正试图通过命令包exec-rake-db:…运行创建数据。。。

如果有帮助的话,我最初得到的错误是"PG::ConnectionBad:无法连接到服务器:连接被拒绝服务器运行在主机"localhost"(::1(上并接受端口5432上的TCP/IP连接吗?无法连接到服务器:连接被拒服务器运行在主机"localhost"(127.0.0.1(上,并接受端口5462上的TCP/IP连接吗?"centos">

注意:发生这种情况时,我正在centOS上。尝试转投ubuntu,同样的交易。然后我尝试安装PostgreSQL,因为在那之前,bundle install命令只安装了"pg"。然后,这将错误消息更改为这篇文章的内容。我在VirtualBox上运行Ubuntu 19.10。如果有人知道如何解决这个问题,我们将不胜感激;我已经试着解决这个问题好几个小时了。作为参考,扩展的错误消息显示:

bundle exec rake db:create_organization['Organization Name']
rake aborted!
PG::ConnectionBad: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"
/var/lib/gems/2.5.0/gems/pg-0.21.0/lib/pg.rb:56:in `initialize'
/var/lib/gems/2.5.0/gems/pg-0.21.0/lib/pg.rb:56:in `new'
/var/lib/gems/2.5.0/gems/pg-0.21.0/lib/pg.rb:56:in `connect'
/var/lib/gems/2.5.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:705:in `connect'
...
...
(more of the same)
...
...
/home/reeda19/dashboard/lib/tasks/onboarding/01_create_organization.rake:8:in `block (2 levels) in <top (required)>'
/var/lib/gems/2.5.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:create_organization
(See full trace by running task with --trace)

再次感谢的帮助

编辑:config/database.yml文件:

默认值:&违约适配器:postgresql编码:utf8主机:localhost用户名:postgres密码:密码端口:5432重新连接:true池:10

开发:<lt;:*违约数据库:dashboard_development

测试:<lt;:*违约数据库:dashboard_test

暂存:<lt;:*违约数据库:dashboard_stage用户名:dashboard_stage主机:prod-versitydashboard-db-01.c3zmqrgsly7w.us-east-2.rds.amazonaws.com密码:<%=ENV['dashboard_DATABASE_PASSWORD']%>

生产:<lt;:*违约数据库:dashboard_production用户名:dashboard_production主机:prod-versitydashboard-db-01.c3zmqrgsly7w.us-east-2.rds.amazonaws.com密码:<%=ENV['dashboard_DATABASE_PASSWORD']%>

编辑2:更新postgres用户密码,使其与database.yml文件中设置的密码匹配,并使用ALTER user user_name with password'new_password';。我不再收到致命的密码错误,而是收到了这个新错误:

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "businesses" does not exist
LINE 8:                WHERE a.attrelid = '"businesses"'::regclass
^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
c.collname, col_description(a.attrelid, a.attnum) AS comment
FROM pg_attribute a
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
LEFT JOIN pg_type t ON a.atttypid = t.oid
LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
WHERE a.attrelid = '"businesses"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum

不确定这是否是我的数据库的问题,特别是psql的问题。

将更新任何进一步的进展。

最终编辑:一个简单的rake数据库:重置修复了这个新错误!现在似乎一切正常

尝试设置POSTGRESS_PASSWORD(或指文档的PGPASSWORD(环境变量,并在config/database.yml文件中使用其值作为密码。

另外,共享您的config/database.yml文件也会有所帮助。

我使用Docker进行开发,偶尔会遇到这种错误。

编辑:在进行此更改后,也尝试运行rake db:reset

相关内容

最新更新