1. psql.bin: FATAL: password authentication failed for user "postgres"
#su postgres
-bash-3.2$psql -U postgres
postgres=#alter user postgres with password 'new password';
postgres=#\q
这种修改方式是错误的,重新登录postgres用户,会提示以下错误信息:
psql.bin: FATAL: password authentication failed for user "postgres"
因为 postgreSQL数据库用户和密码 与 Linux 用户postgres的密码是独立存储的,所以 修改数据库密码 需要修改 数据库用户角色的密码 而不是Linux用户的密码。
针对以上问题, 可以按一下步骤:
(1)先把pg_hba.conf 中 远程Ip对应的Method 改为 trust,保存后,重新加载 pg_hba.conf
postgres@ubuntu:~/bin$ ./pg_ctl reload
server signaled
(2)然后,在pgadmin客户端中使用修改过的密码进行登录,登录进去后,执行以下命令:
alter role postgres with password 'yourpassword'
(3)接下来,需要重新在Linux shell中登录 postgres
root@ubuntu:~# su - postgres
$ psql
Password:
psql.bin (9.5.13)
Type "help" for help.
No entry for terminal type "xterm";
using dumb terminal settings.
postgres=#
(4)然后,执行以下命令,查看当前postgresql 有多少用户,及对应的密码
postgres=# select rolname,rolpassword from pg_authid;
(5) 再次执行以下命令:
postgres=# alter role postgres with password 'yourpassword';
(6)之后,退出postgres 用户,切换为root 用户, 修改pg_hba.conf,把 trust 改为 MD5, 退出并保存。重新加载pg_hba.conf。
(7)走到这里, 就可以成功的 使用 postgres用户和新密码yourpassword登录到pg了。
2.正确的修改postgresql数据库 某用户的密码的方式如下:
alter role postgres with password 'yourpassword'
参考文献:
关于连接PostgreSQL时提示 FATAL: password authentication failed for user "连接用户名" 的解决办法