从CMD中的Windows用户更改postgreSQL数据库用户


2

我最近在Windows 7上安装了PostgreSQL,每次我尝试使用CMD执行SQL命令时,我都会收到此错误

createdb: could not connect to database template1: FATAL: password authentication failed for user "R-61"

哪里R-61是我的Windows机器用户名。

这是我如何使用CMD与pgSQL

  • 首先我cd到pgSQL bin文件夹 $ cd C:\xampp\pgsql\9.1\bin
  • 我尝试创建一个数据库 $ createdb NEWDATABASE
  • 我收到输入密码的提示。这是我迷惑的地方,因为我不知道密码是什么。 我试过我的窗口用户密码,密码为 postgres 超级用户,似乎没有用。这是我得到的错误消息 createdb: could not connect to database template1: FATAL: password authentication failed for user "R-61"

    有人知道解决方案吗? 我在考虑将用户表格改为R-61 postgres 超级用户会工作,但我不知道该怎么做。

非常需要你的帮助。

Answers:


2

createdb 是一个必须连接到服务器的命令,就像任何其他客户端命令一样(即使在服务器本身上运行),因此需要数据库用户进行连接。

如果未指定数据库用户 -U username 选项,它采用您的操作系统用户名,因此引用 "R-61" 在错误消息中。询问的密码是不存在的密码 R-61 数据库用户。

还有其他选项,例如主机默认为 localhost 和端口默认为 5432,看到它 手册页 对于他们所有人。

既然你提到你知道postgres超级用户密码,最简单的解决方案就是使用 postgres 用户启动命令。无论如何,这是有道理的,因为在全新安装时,该用户将是唯一具有创建数据库权限的用户。

尝试 createdb -U postgres newdatabase

它应该要求输入密码,这将是密码 postgres 数据库用户。

如果它没有要求输入密码,则表示安全策略在 pg_hba.conf 以这种方式配置。如果密码丢失(或者没有设置密码,某些自动安装就是这种情况,特别是在Unix上), pg_hba.conf 必须更改并重新加载服务以授权无密码连接,至少暂时设置新密码。


通过PG手册一瞥应该回答我的问题。谢谢老兄拯救我的屁股
Collizo4sky

0

我没有这方面的直接经验,但我调查了它,我认为这是你正在寻找的。 我发现了一个类似的问题,表明Windows上的PostgresSQL在安装过程中要求输入密码。 该密码可能是PostgresSQL管理员帐户的密码。 管理员帐户应该可以连接到该数据库并调整其权限。

或者,编辑pg_hba.conf文件以信任来自某些用户和位置的用户连接也应该允许您连接。 您需要更正权限问题并还原已编辑的pg_hba.conf行。

我发现这个问题的讨论: Re:默认密码 pg_hba.conf文件中的文档: 19.1。 pg_hba.conf文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.