九月 19, 2023
摘要:在本教程中,我们将逐步向您展示如何在 PostgreSQL 中重置postgres
用户的密码。
由于某些原因,安装 PostgreSQL 后,您可能会忘记postgres
用户的密码。在这种情况下,您需要知道如何重置密码来访问 PostgreSQL 服务器。
PostgreSQL 使用存储在数据库数据目录(例如,在 Windows 上的目录C:\Program Files\PostgreSQL\12\data
)中的pg_hba.conf
配置文件来控制客户端身份验证。pg_hba.conf
中的hba
表示基于主机的身份验证(host-based authentication)。
如果要重置postgres
用户的密码,需要修改该配置文件中的一些参数,以postgres
无密码方式登录,然后重置密码。
以下步骤向您展示如何重置postgres
用户的密码:
步骤 1 通过将pg_hba.conf
文件复制到其他位置或将其重命名为pg_hba.conf.bk
来备份文件。
步骤 2 编辑pg_hba.conf
文件并将所有本地连接从md5
(或较新版本中的scram-sha-256
)更改为trust
。这样,您就可以无需密码登录 PostgreSQL 数据库服务器。
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
步骤 3 重新启动 PostgreSQL 服务器。如果您使用的是 Windows,您可以从服务重新启动 PostgreSQL:
或者从窗口终端运行以下命令:
pg_ctl -D "C:\Program Files\PostgreSQL\12\data" restart
其中"C:\Program Files\PostgreSQL\12\data"
是数据目录。
步骤 4 使用任何工具(例如 psql 或 pgAdmin)连接到 PostgreSQL 数据库服务器:
psql -U postgres
PostgreSQL 不需要密码即可登录。
步骤 5 执行以下命令为postgres
用户设置新密码。
postgres=# ALTER USER postgres WITH PASSWORD 'new_password';
步骤 6 恢复pg_hba.conf
文件,重新启动 PostgreSQL 数据库服务器,并使用新密码连接到 PostgreSQL 数据库服务器。
在本教程中,您学习了如何重置postgres
用户的密码。