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

Col*_*sky 4 postgresql

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

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

其中 R-61 是我的 Windows 机器用户名。

这是我如何在 pgSQL 中使用 CMD

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

非常需要您的帮助。

Dan*_*ité 8

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

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

还有其他选项,例如主机默认为localhost和端口默认为5432,请参阅其手册页了解所有这些。

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

尝试 createdb -U postgres newdatabase

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

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