Answers:
(注意:这与从EDB安装程序中使用PostgreSQL 9.2或更高版本的读者没有太大关系,尽管现在您仍可以配置其他帐户,但这些安装程序使用可以大大简化了使用的默认安装NETWORK SERVICE
)。
我曾经
net user postgres postgres
重置过数据库的密码,但是我收到的不是成功消息"System error 5 has occurred. Access is denied."
您已重置(或尝试重置)服务帐户密码。出于安全性考虑,PostgreSQL将无法以管理员身份运行,并且安装程序通常在PostgreSQL 9.1及更低版本1中使用“ postgres”用户帐户对其进行设置。在Windows上,如果不将用户的密码保存在注册表中,则无法以用户身份启动服务,这就是安装程序的工作。
如果您更改Windows用户帐户的密码postgres
,则PostgreSQL服务将无法启动。因此,请勿这样做,您必须修复服务配置以存储更新的密码。
值得庆幸的是,我认为另一个错误使您无法这样做。看起来您可能在没有特权的Windows用户帐户或具有UAC的计算机上运行命令提示符而未使用“以管理员身份运行”,因此它没有以更改postgres
用户密码所需的访问权限运行。
在尝试更改该密码之前,请确保它确实是您想要的。您要在这里解决什么问题?您是否要安装数据库更新或要求postgres
Windows用户输入密码的其他工具?
您很可能只是尝试登录数据库。为此,您使用存储在数据库自身中的(不幸的是完全不相关)密码。由于您丢失/忘记了它,因此必须将其重置:
pg_hba.conf
,通常在C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
pg_hba.conf
该方式。编辑它以将主机“ 127.0.0.1/32”上的用户“ postgres”的“主机”行设置为“信任”。您可以添加该行(如果没有);只需插入:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
在任何其他行之前。(您可以忽略注释,以开头的行#
)。
从服务控制面板重新启动PostgreSQL服务(开始->运行-> services.msc
)
ALTER USER postgres PASSWORD 'postgres'
pg_hba.conf
或更改的行请参阅:如何在Windows上为PostgreSQL重置postgres密码?
1. 9.2现在使用了NETWORKSERVICE
不需要密码的帐户,因此该问题消失了。
NETWORKSERVICE
用户帐户,则没有服务帐户密码。如果您安装为使用专用服务帐户(例如postgres
或域帐户),则可以提供帮助。
NETWORK SERVICE
的是没有密码来重置。如果您使用其他帐户在9.2+上安装,则适用相同的信息。重置postgres超级用户数据库帐户密码的部分没有任何变化。因此,实际上并不需要任何更改。
您需要区分名为“ postgres”的系统(Windows)用户和具有相同名称的数据库用户。
找到您的pg_hba.conf文件-这控制对PostgreSQL服务器的访问。您将需要以具有管理员权限的用户身份对其进行编辑。查找提到用户“ postgres”的行,并将模式临时设置为“ trust”。重新启动postgresql,然后您无需密码即可连接。重置密码,然后将文件恢复为原始设置并重新启动PostgreSQL。
该手册详细介绍了身份验证方法和pg_hba.conf文件。
如果其他任何人在使用pgAdmin的同时也遇到此问题,建议您看看以下内容:http : //www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword