' postgresql用户密码验证失败;

我已经安装了PostgreSQL 8.4, Postgres客户端和Pgadmin 3。控制台客户端和Pgadmin用户“postgres”身份验证失败。我已经输入用户作为“postgres”和密码“postgres”,因为它以前工作过。但是现在身份验证失败。我以前做过几次都没有这个问题。我该怎么办?发生了什么?

psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"
1051381 次浏览

尽量不要使用-W参数,并让密码为空。有时创建用户时使用无密码。

如果不行,重置密码。有几种方法可以做到这一点,但这适用于许多系统:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';

如果我没记错的话,Ubuntu默认没有设置postgres用户的密码。这意味着,您只能通过使用postgres 操作系统用户帐户登录该帐户。

假设,你有root访问框,你可以做:

sudo -u postgres psql

如果失败并出现database "postgres" does not exists错误,那么你很可能不是在Ubuntu或Debian服务器上:-)在这种情况下,只需在命令中添加template1即可:

sudo -u postgres psql template1

如果这些命令中的任何一个失败并出现错误psql: FATAL: password authentication failed for user "postgres",那么检查文件/etc/postgresql/8.4/main/pg_hba.conf:必须有这样的一行作为第一个非注释行:

local   all         postgres                          ident

对于PostgreSQL的新版本,ident实际上可能是peer。这也没关系。

psql外壳内,您可以给数据库用户 postgres一个密码:

ALTER USER postgres PASSWORD 'newPassword';

您可以通过输入CtrlD或使用命令\q离开psql shell。

现在,您应该能够为pgAdmin提供一个有效的数据库超级用户密码,它也会很高兴。: -)

工作人员的反应是正确的,但如果你想进一步自动化可以做:

# EYZ0

完成了!您保存了User = postgres和password = postgres。

如果你没有postgres ubuntu用户的密码,请:

# EYZ0

如果您试图以postgres用户登录postgres shell,那么您可以使用以下命令。

切换到postgres用户

# su - postgres

登录PSQL

# psql

希望这能有所帮助

这是令人沮丧的,上面的大多数答案是正确的,但他们没有提到你必须在pg_hba.conf文件中的更改生效之前重新启动数据库服务

所以如果你做出如上所述的改变:

local all postgres ident

then 重新启动作为根(在centos上,它类似于service service postgresql-9.2 restart) 现在您应该能够以用户postgres

访问数据库了
$psql
psql (9.2.4)
Type "help" for help.


postgres=#

希望这能为postgres的新用户提供信息

编辑pg_hba.conf文件,Debian在/etc/postgresql/9.3/main/pg_hba.conf, Red Hat/IBM在/var/lib/pgsql/9.4/data/pg_hba.conf

  • 将所有身份验证方法更改为trust
  • 修改Linux用户postgres的密码。
  • 重新启动服务器。
  • 使用psql -h localhost -U postgres登录,并使用刚刚设置的Unix密码。
  • 如果它工作,你应该重新设置pg_hba.conf文件的值与md5ident方法,并重新启动。

我只是想补充一句,你也应该检查一下你的密码是否过期了。

详见Postgres密码认证失败

以下是我尝试登录的一些组合:

# login via user foo
psql -Ufoo -h localhost


sudo -u postgres psql postgres


# user foo login to postgres db
psql -Ufoo -h localhost -d postgres

作为一个经验法则:永远不要为postgres用户设置密码

如果需要从pgAdmin获得超级用户权限,请创建另一个超级用户。这样,如果超级用户的凭据被泄露,您总是可以ssh到实际的数据库主机并使用手动删除超级用户

sudo -u postgres -c "DROP ROLE superuser;"
我也有类似的问题。 Ubuntu让我用超级用户的任何密码登录控制台。 除了我在psql行命令中连接-h localhost

我还观察到“localhost:8080/MyJSPSiteLogIn”-显示:致命:用户“user”的autentication错误。

Pg_hba.conf是ok的。

我注意到在同一个服务中运行了两个版本的postgres。

解决-卸载inutil版本。

我希望这能在短时间内帮到你。 postgres sql的密码可以通过bellow命令修改

命令

Sudo -u postgres PSQL

接下来您可以更新密码

命令

修改用户postgres密码为YOUR_NEW_PASSWORD

对于那些第一次使用它,不知道密码是什么的人,他们可以遵循以下步骤(假设你是ubuntu):

  1. 打开/etc/postgresql/9.x/main中的pg_hba.conf文件

     sudo vi pg_hba.conf
    

    2.编辑下面的行

     local   all             postgres                                peer
    

     local   all             postgres                                trust
    
  2. Restart the server

      sudo service postgresql restart
    
  3. Finally you can login without need of a password as shown in the figureFinally you can login without need of a password as shown in the figure

Ref here for more info

进入postgres shell后,输入以下命令

postgres=# \password postgres

输入此命令后,将提示您设置密码,只需设置密码,然后尝试。

我也遇到过类似的问题。 而访问任何数据库,我得到以下提示后更新密码 "password authentication failed for user " postgres " " in PGAdmin

.

解决方案:

  1. 关闭postgres服务器
  2. 重新运行pgadmin
  3. Pgadmin会要求输入密码。
  4. 请输入上述用户当前密码

希望它能解决你的问题

enter image description here

当你安装postgresql时,没有为postgres用户设置密码,你必须在Unix上使用命令显式地设置它:

sudo passwd postgres
它会询问你的sudo密码,然后提示你输入新的postgres用户密码。 # EYZ0 < / p >

这是由于缓存造成的。

当你运行php artisan config:cache时,它会缓存配置文件。当事情发生变化时,您需要继续运行它来更新缓存文件。但是,如果你不运行这个命令,它就不会缓存。

这对于生产来说是可以的,因为配置不会经常更改。但是在登台或开发期间,您可以通过清除缓存来禁用缓存,而不运行缓存命令

因此,只需运行php artisan config:clear,之前不要运行该命令以避免缓存。

查看原文

Password authentication failed error on running laravel migration .

时间过得真快啊!

在版本12中,我必须使用“密码”;而不是" identity "在这里:

local   all             postgres                                password

不使用-h选项进行连接。

在我的例子中,它的密码超过100个字符。将其设置为较小的字符密码有效。

事实上,我想知道有没有什么地方提到过这个。

古老的线程,但我在2020年浪费了半天时间来处理这个问题,所以这可能会帮助到一些人:再次检查你的postgres端口(在Ubuntu上,它在/etc/postgresql/9.5/main/postgresql.conf)。psql客户端默认使用端口5432,但在我的例子中,服务器运行在端口5433上。解决方案是在psql中指定-p选项(例如psql --host=localhost --username=user -p 5433 mydatabase)。

如果不使用——host参数,psql将通过套接字进行连接,这在我的例子中是可行的,但我的Golang应用程序(使用TCP/IP)却不行。不幸的是,错误消息是password authentication failed for user "user",这具有误导性。解决方法是使用url连接字符串连接端口(例如postgres://user:password@localhost:5433/mydatabase)。

我的设置是数字海洋上的Ubuntu 18.04,通过apt-get安装postgres 9.5,所以不知道为什么会发生这种情况。希望这能为您节省一些时间。

请记住,如果你安装了两个版本的Postgres,你需要卸载其中一个,在我的情况下,在MacOS上,我安装了一个版本通过.dmgbrew

对我来说有用的是使用以下步骤卸载通过.dmg安装的

  1. 转到/Library/PostgreSQL/13
  2. uninstall-postgres.app开放。

那就试试

psql postgres

它应该会起作用。

给出的答案几乎是正确的,只是缺少一些指针,我会在我的解决方案中照顾

首先确保你的用户有sudo访问权限,如果没有,你可以使用下面的命令添加你的用户作为sudo用户

sudo adduser <username> sudo

更改将在用户下次登录时生效。

i)现在转到sudo vim /etc/postgresql/<your_postgres_version>/main/pg_hba.conf文件,寻找一行说:

local   all             postgres                                md5 #peer

评论一下。就在这一行下面,必须有一个注释行,说:

local   all             postgres                                peer

或者对于旧版本,它将是:-

local   all         postgres                          ident

取消这一行的注释。

ii)现在重新启动postgres使用任何这些命令:-

sudo /etc/init.d/postgresql restart

sudo service postgresql restart

iii)现在您可以使用以下命令简单地登录到postgres:

sudo -u postgres psql

Iv)一旦你在你可以创建任何你想要的操作,在我的情况下,我想创建一个新的数据库,你可以使用下面的命令做同样的事情:

CREATE DATABASE airflow_replica;
我在Windows 10上遇到了同样的错误。在我的例子中,当我设置Postgres时,我的用户名默认为postgres。 但是当我运行命令psql时,它显示我的用户名jitender,这是我的机器名称,我不知道为什么这个用户名已经设置 不管怎样,为了解决它,我做了以下步骤: 执行命令psql --help

  • 在输出中,寻找连接选项,在这里你会看到你的默认用户,在我的情况下,它是jitender。
  • 您还将获得设置另一个用户名的命令,该用户名应该是PSQL——用户名postgres。你可以设置你需要的用户名,问题就解决了。

如果你看到错误

FATAL:  password authentication failed for user "postgres"

并且你确定你的密码是正确的,检查密码是否有任何特殊字符,特别是"%"或斜杠。 在我的情况下,它是"%"在密码字符串中。删除此符号后,一切正常

在我的例子中,Ubuntu 20.04 Postgresql 12使用了错误的端口。

我检查了/etc/postgresql/12/main/postgresql.conf,意识到它是5433而不是5432

对我来说,这太简单了!我在应用程序JAVA Spring中出错,因为我需要记住数据库超级用户,它在安装过程中显示PostgreSQL,在我的情况下,数据源将是postgres。所以,我正确地添加了名称,它工作!

首先是密码箱

ALTER USER postgres with encrypted password 'postgres';

然后重启服务:

sudo systemctl restart postgresql.service

结束。

  1. 在任意文本编辑器(你可以在postgres安装文件夹中找到这个文件)中打开pg_hba.conf;
  2. 将所有方法字段更改为信任(这意味着postgre不需要密码);
  3. 在控制台中运行以下命令: alter user postgres with password '[my password]';| psql -U postgres (意思是修改一些用户的密码为[my password]为用户参数-U postgres)
  4. Et voilà (别忘了把trust的方法改回最适合你的方法)

我希望有一天这能帮助到别人。

答案是@diego

我想添加一些关于我如何修复错误的解释,我希望它能帮助其他人: # EYZ0 < / p >
  1. 在窗口

  • 确保你下载Postgres软件,安装它,创建和确认密码 并确保它不复杂的一些符号和字符

  • 打开窗口,单击SQL Shell (PSQL),进入并创建数据库

  • # EYZ0 < / p >

  1. 在WSL

遵循# EYZ0

安装成功后

 // Open postgres
su postgres
 

// Type psql and hit enter
psql


// Create a user postgres if not exist or any other user you want
CREATE USER your_user_db WITH PASSWORD 'match_password_with_db_password';
 



// Give user password same as the one you set up for postgres db
ALTER USER your_user_db WITH PASSWORD 'match_password_with_db_password';


// Restart the server
sudo service postgresql restart

遵循以下步骤:

  1. Sudo -u postgres -i
  2. psql
  3. postgres \密码

之后,输入两次密码。

然后在pgAdmin4中使用该密码。

在登录postgres时,我也遇到了这个问题。我遵循以下步骤,并能够登录postgres和pgadmin。

步骤1:使用终端打开Postgres。

sudo su postgres

步骤2:打开psql。

psql

步骤3:重置用户密码

ALTER USER user_name WITH PASSWORD 'new_password';

Step4:赋予用户对数据库的权限。

GRANT ALL PRIVILEGES ON DATABASE my_database TO db_user;