gen*_* b. 9 windows postgresql psql
我有一个Windows PostgreSQL安装.
根据一些帖子,没有为'postgres'用户设置默认密码,但我无法使用空密码字符串进行连接.
我尝试连接时收到此异常:
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
最相关的提示是:https: //stackoverflow.com/a/25943227/1005607
Open pg_hba.conf
Change md5 -> TRUST
then restart PgAdmin.
Run Code Online (Sandbox Code Playgroud)
我尝试了并重新启动了PGAdmin但是当我尝试连接时它仍然要求我输入密码:
Windows中的任务管理器显示一些PostgreSQL进程正在运行.我不能把它们关掉.
我试过这个但它失败了:
pg_ctl restart
ERROR:
pg_ctl: no database directory specified and environment variable PGDATA unset
psql.exe postgres
Password: (none)
ERROR:
psql: fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)
如何重置用户'postgres'的默认密码?
根据AK47的答案和一些额外的信息,我通过以下方式修复它,
1)如果当前正在运行,请停止Postgres,命令行如下.需要给它'数据'目录.在我的例子中C:\ PostgreSQL\data
pg_ctl -D C:\PostgreSQL\data stop
Run Code Online (Sandbox Code Playgroud)
2)编辑文件pg_hba.conf(它也在\ data目录中),如下所示:
正如AK40所写,改变所有MD5引用信任,例如
# 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
Run Code Online (Sandbox Code Playgroud)
3)现在运行
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
4)在出现类型的PG命令提示符中,
ALTER USER Postgres WITH PASSWORD '<newpassword>';
Run Code Online (Sandbox Code Playgroud)
5)输入wqenter以退出PG提示,保存此项
6)现在开始Postgres
pg_ctl -D C:\PostgreSQL\data start
Run Code Online (Sandbox Code Playgroud)
7)可能希望MD5 -> Trust稍后恢复更改pg_hba.conf.
| 归档时间: |
|
| 查看次数: |
18551 次 |
| 最近记录: |