Password

無法在 postgresql 中更改使用者 postgres 的密碼

  • March 28, 2010

我在 pg_hba.conf 中做了以下條目

本地所有人都信任

但仍然

使用 postgres

不接受空白作為密碼。由於大多數文件歸 postgres 所有,我無法執行 psql 或 pg_ctl。

編輯1

dhaval@ubuntu:~$ su -c "pg_ctl reload -D template1"
Password: 
su: Authentication failure

dhaval@ubuntu:~$ su -c psql
Password: 
su: Authentication failure

我在上面給出了 root 密碼,但我猜它期待“postgres”超級使用者密碼。我沒有相同的。我需要重置它。

編輯2

dhaval@ubuntu:~$ sudo -i -u postgres
[sudo] password for dhaval:
postgres@ubuntu:~$ psql
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

上面已經讓我使用了 postgreSQL 命令提示符。但我仍然不確定為什麼“信任”不起作用。

作業系統使用者密碼(當您嘗試 su 時要求您輸入的東西)與Postgrestrust使用者密碼(當您將 auth 設置為in時不需要的東西pg_hba.conf)不同。

您需要為Operating System的 postgres 使用者設置一個有效的****作業系統密碼並輸入該密碼才能 su 到該使用者(或從 root su 到該使用者,您不會被要求輸入密碼)。

通常 postgres作業系統使用者密碼在數據庫初始化後被鎖定,因為唯一需要以 postgres 身份執行的是pg_ctl,它可以su -c從您的 init 腳本啟動(以 root 身份執行,因此不需要密碼)。

引用自:https://serverfault.com/questions/117956