当前位置: 首页 > 知识库问答 >
问题:

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

沈实
2023-03-14

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

上下文是我为一家公司提供了一个web应用程序,我正试图通过命令bundle exec rake db:。。。

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

注意:当这发生时,我在centOS上。试着切换到ubuntu,同样的交易。然后我尝试安装PostgreSQL,因为在那之前,bundle安装命令只安装了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文件:

违约:

发展:

测试:

登台:

制作:

编辑2:更新postgres用户密码,使其与database.yml文件中设置的密码相匹配,并使用ALTER user user_name和密码“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

不确定100%这是否是我的数据库的问题,或者更确切地说是psql的问题。

将根据任何进一步的进展进行更新。

最终编辑:一个简单的rake db:reset修复了这个新错误!看来现在一切都好了

共有1个答案

司徒经纶
2023-03-14

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

同时共享config/database.yml文件也会有所帮助。

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

编辑:也尝试运行rake db:重置后进行此更改。

 类似资料: