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

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

我最近在 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

  • 首先我进入 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超级用户,但我不知道该怎么做。

非常需要您的帮助。

答案1

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

如果您没有使用-U username选项指定数据库用户,它将使用您的操作系统用户名,因此错误消息中引用了"R-61"。所要求的密码是不存在的R-61数据库用户的密码。

还有其他选项,例如主机默认为localhost和端口默认为5432,请参阅其手册页对他们所有人来说。

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

尝试createdb -U postgres newdatabase

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

如果它不要求输入密码,则意味着安全策略就是pg_hba.conf这样配置的。如果密码丢失(或者从未设置过密码,这是某些自动安装的情况,尤其是在 Unix 上),则pg_hba.conf必须更改密码并重新加载服务以授权无密码连接,至少暂时设置新密码。

答案2

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

或者,编辑 pg_hba.conf 文件以信任来自特定用户和位置的用户连接,这样也应该允许您连接。您需要更正权限问题并恢复编辑的 pg_hba.conf 行。

我发现这个讨论是: 回复:默认密码 pg_hba.conf 文件的文档: 19.1. pg_hba.conf 文件

相关内容