PostgreSQL:修改数据库用户的密码

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;

PostgreSQL:修改数据库用户的密码_第1张图片

(5) 再次执行以下命令:

postgres=# alter role postgres with password 'yourpassword';

(6)之后,退出postgres 用户,切换为root 用户, 修改pg_hba.conf,把 trust 改为 MD5, 退出并保存。重新加载pg_hba.conf。

(7)走到这里, 就可以成功的 使用 postgres用户和新密码yourpassword登录到pg了。


PostgreSQL:修改数据库用户的密码_第2张图片

2.正确的修改postgresql数据库 某用户的密码的方式如下:


alter role postgres with password 'yourpassword'

参考文献:

PostgreSQL 9.5.3 中文手册

PostgreSQL口令认证的问题

关于连接PostgreSQL时提示 FATAL: password authentication failed for user "连接用户名" 的解决办法

你可能感兴趣的:(PostgreSQL:修改数据库用户的密码)