小编典典

我忘记了在 postgres 安装过程中输入的密码

all

我忘记或输入错误(在安装过程中)Postgres 默认用户的密码。我似乎无法运行它,并且出现以下错误:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql

无论如何要重置密码或如何创建具有超级用户权限的新用户?

我是 Postgres 的新手,并且是第一次安装它。我正在尝试将它与 Rails 一起使用,并且正在运行 Mac OS X Lion。


阅读 144

收藏
2022-05-19

共1个答案

小编典典

  1. 查找文件pg_hba.conf- 它可能位于,例如/etc/postgresql-9.1/pg_hba.conf.

cd /etc/postgresql-9.1/

  1. 把它备份

cp pg_hba.conf pg_hba.conf-backup

  1. 放置以下行(作为第一个未注释的行,或作为唯一的行):

对于以下所有事件(本地和主机),除了复制部分,如果您没有任何必须更改如下,则不应存在 MD5 或对等身份验证。

local  all   all   trust
  1. 重启你的 PostgreSQL 服务器(例如,在 Linux 上:)

sudo /etc/init.d/postgresql restart

如果服务(守护程序)没有开始在日志文件中报告:

此版本不支持本地连接

你应该改变

local all all trust

host all all 127.0.0.1/32 trust

  1. 您现在可以以任何用户身份连接。以超级用户身份连接postgres(注意, 超级用户名在您的安装中可能不同。pgsql例如,在某些系统中,它被称为 。

psql -U postgres

或者

psql -h 127.0.0.1 -U postgres

(请注意,使用第一个命令您不会总是与本地主机连接)

  1. 重置密码(’replace my_user_name 为 postgres ,因为您正在重置 postgres 用户)

ALTER USER my_user_name with password 'my_secure_password';

  1. 恢复旧pg_hba.conf的,因为保留 很危险

cp pg_hba.conf-backup pg_hba.conf

  1. 重启服务器,以便安全运行pg_hba.conf

sudo /etc/init.d/postgresql restart

__关于该 pg_hba 文件的 进一步阅读: http ://www.postgresql.org/docs/9.1/static/auth-pg-
hba-conf.html

2022-05-19