我更改postgres密码为NULL为我的本地计算机上的用户postgres。在SQL窗口中使用以下命令: ALTER ROLE postgres WITH PASSWORD NULL;空密码失败登录postgres 9.3窗口
现在,我不能再次登录,因为它要求输入密码并且不接受任何内容。我无法运行SQL查询来更改密码,因为我现在没有登录。我可以通过Windows命令提示符来更改密码吗?
我更改postgres密码为NULL为我的本地计算机上的用户postgres。在SQL窗口中使用以下命令: ALTER ROLE postgres WITH PASSWORD NULL;空密码失败登录postgres 9.3窗口
现在,我不能再次登录,因为它要求输入密码并且不接受任何内容。我无法运行SQL查询来更改密码,因为我现在没有登录。我可以通过Windows命令提示符来更改密码吗?
您可以编辑pg_hba.conf
文件启用trust
(无密码)验证方法localhost
。详情点击这里:http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
添加
host all all 127.0.0.1/32 trust
到pg_hba.conf
文件的开始将使无密码登录从127.0.0.1/32
(本地主机)
我试图改变配置文件列表中的文本:localhost:5432:*:postgres:trust
但这不起作用。它有什么问题吗?还试过localhost:5432:*:postgres:iden,但这也不起作用。 –
Cagg
2014-09-22 12:16:14
你的字符串的格式不是'pg_hba.conf'所需的格式。尝试我在答案中发布的字符串。更改为'pg_hba.conf'后 - 重新启动服务器。 – 2014-09-22 12:19:01
我像这样编辑了文件底部的行,现在它可以工作。感谢您的帮助:#IPv4本地连接: 主机全部全部127.0.0.1/32信任 #IPv6本地连接: 主机全部:: 1/128信任 – Cagg 2014-09-22 12:49:50
首先去pg_hba.conf文件并打开它任何编辑器(记事本或记事本++)。
地点的pg_hba.conf主要是
C:\Program Files\PostgreSQL\9.3\data
更改方法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
而不是
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
然后保存。
运行命令提示符管理员,并转到
C:\Program Files\PostgreSQL\9.3\bin
目录通过CMD。
运行的重载Postgres的服务命令
pg_ctl.exe reload -D "C:\Program Files\PostgreSQL\9.3\data"
得pgAdmin的,并且不使用密码
进入属性连接本地主机数据库
变化定义选项卡
然后再次改变方法信任MD5密码。
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
再次运行重载postgres的服务命令
pg_ctl.exe reload -D "C:\Program Files\PostgreSQL\9.3\data"
http://dba.stackexchange.com/q/19643/7788,http://stackoverflow.com/q/10845998/398670。 – 2014-09-22 12:43:18
如果PostgreSQL发现你的'pg_hba.conf'具有'trust'认证,但它不知道你故意不这样做(比如创建另一个超级用户之后),否则PostgreSQL可能会阻止你这样做。 – 2014-09-22 12:45:49