安装PostgreSQL时,数据库群集初始化失败(PostgreSQL版本为9.4.4)。

9

我无法安装Postgresql。 我已经尝试了所有方法:

  • 我以管理员身份运行安装程序。
  • 我创建了一个postgresql用户,并将其添加到管理员组中。
  • 我直接在C:\postgresql上安装它。

但是都没有成功。 信息:我使用的是Windows 8操作系统。


1
确切的错误信息是什么?另外,对于任何最近的Postgres版本,您都不需要单独的Windows用户。还应该有一个安装日志。里面有什么东西吗? - user330315
我收到的错误信息是这个: http://i.stack.imgur.com/LHAxi.png - xAminex
18个回答

8

现在是2019年,我在使用Postgres 11时仍然遇到了相同的问题。在此之前,我卸载了当前的Postgres 9.6(如果我记得版本正确),并尝试安装新的Postgres 11,但出现了问题。我尝试了以下方法,但都没有成功:

  • 以管理员身份运行每个安装程序 -> 失败
  • 选择设置提示的默认安装文件夹(C:/Program Files/PostgresSQL/11),并将数据文件夹放置在其他位置 -> 失败
  • 在C:/以外的其他位置安装 -> 仍然失败

幸运的是,在我纠结了整整一天之后,我终于找到了一个解决方法,这个方法来自于这篇帖子

解决方案:
- 卸载PostgreSQL
- CMD: net user postgres /delete
- 控制面板 -> 用户账户 -> 配置高级用户属性 -> 删除所有看起来像是剩余的postgres的“未知用户”实例
- 运行 > compmgmt.msc -> 本地用户和组 -> 用户 -> 新用户... -> 用户名: postgres, 密码: postgres -> 创建
- compmgmt.msc -> 本地用户和组 -> 用户 -> postgres -> 成员 -> 添加... -> 管理员 -> 确定
- 将postgresql-8.4.9-1-windows.exe复制到C:/
- runas /user:postgres cmd.exe -> cd \ -> postgresql-8.4.9-1-windows.exe -> 安装成功,没有错误。检查数据文件夹并确认文件已成功创建。(这意味着您必须使用创建的postgres用户运行安装)
- compmgmt.msc -> 本地用户和组 -> 用户 -> postgres -> 成员 -> 管理员 -> 删除
- compmgmt.msc -> 本地用户和组 -> 用户 -> postgres -> 成员 -> 添加... -> Power Users -> 确定
- 安装HM2 -> 成功创建数据库
- 重新启动计算机 -> HM2正常运行(即仅用于检查PostgreSQL服务是否自动启动)

专业提示: 为了更好地了解安装日志,请在任务栏搜索"%TEMP%"来查找%TEMP%文件夹,日志名称应为bitrock_installer-xxx.log。了解正在发生的事情可以更快地解决问题。


8

对我来说,每一种方法都失败了,包括这里提到的所有解决方案。然后在研究了一下后,我成功地使用了postgresql。当你遇到“数据库集群初始化失败”错误时,请按照以下步骤操作:

您需要手动运行initdb,它位于:“C:\Software\PostgreSql\12\bin”

现在确保将“postgres”作为与initdb cmd一起使用的用户,因为“postgres”是安装过程中创建的超级用户。

initdb -D "D:\PostgreSql\12\data" -U postgres

现在一旦数据库集群被初始化,您就可以使用PostgreSql \ 12 bin文件夹中的pg_ctl实用程序启动服务器。

pg_ctl start -D "D:\PostgreSql\12\data"

或者,您也可以将其注册为Windows服务,并将其设置为自动启动

pg_ctl register -N PostgreSql-12.3.1 -D "D:\PostgreSql\12\data"

现在您已经准备好使用postgresql数据库了。通过命令行(psql)或pgAdmin4使用它。


7
  • 首先以管理员身份运行设置程序。
  • 选择程序文件夹内的安装文件夹(默认)。
  • 但是请选择您的数据位置在上述文件夹之外的其他地方(例如c:\ postgres data或其他位置)。

2

不要使用EDB安装程序。现在有BigSQL替代品。


1
我正在安装Postgres 9.5版本(在Windows 7上,使用DBEnterprise安装程序)... 对我来说,问题似乎是我选择了“POSIX”作为区域配置... 但是我尝试了“C”区域配置,安装顺利完成...
另外,我以管理员身份运行了安装程序!

1

我尝试安装Postgres 10.3时遇到了同样的问题。以管理员身份运行并没有帮助我解决问题。但是,当我将安装目录从默认的Program Files文件夹更改为C驱动器中的新文件夹时,它成功地安装了。


0

在WSL(Windows子系统Linux)上运行PostgreSQL,并在Windows上连接它。

以管理员身份打开Windows终端/PowerShell(右键单击Windows 11的开始图标 -> Windows终端(管理员)。输入:

wsl --install

重新启动你的电脑。登录后,Ubuntu将自动安装,WSL2和Ubuntu是Windows 11的标准配置。按照说明输入你想要的用户名和密码。
更新Ubuntu:
sudo apt update && sudo apt upgrade

安装PostgreSQL:
sudo apt install postgresql

给 'postgres' 用户设置密码:
sudo passwd postgres

启动服务并打开 psql shell:

sudo service postgresql start && sudo -u postgres psql

请注意,您创建的密码不是用于postgres的DB密码,因此除非您为postgres创建一个新用户,否则无法在psql shell中为其提供密码。
ALTER USER postgres PASSWORD 'mypw';

现在您可以安装pgAdmin或使用自己的程序(在“普通”Windows中),以确认您可以使用端口5432(可能会有所变化)连接到127.0.0.1上的postgres用户及其密码。

0

tl;dr - 不要以管理员身份安装,只需以普通用户身份安装(可能需要设置PGDATA)。

截至2023年11月,我在运行EDM安装程序postgresql-16.1-1-windows-x64.exe时遇到了同样的问题。无论是创建postgres用户、分配权限等,都无法解决问题,始终出现集群初始化失败的错误。

在折腾了几个小时后,我注意到在“失败”的安装之后,如果我使用.\initdb.exe -D "C:/PostgreSQL/16/data"手动初始化数据库,然后使用pg_ctl启动进程,但如果我尝试从管理员提升的控制台中执行该操作,则无法正常工作。

因此,我将PGDATA环境变量设置为"C:/PostgreSQL/16/data"(不确定是否需要此步骤,我这样做是为了在测试时不必在命令中使用-D选项),卸载了postgres,删除了"C:/PostgreSQL/16/data"的内容,并以普通用户身份重新安装(而不是以管理员身份),选择"C:/PostgreSQL/16/data"作为我的数据文件夹。安装过程完全没有任何问题。


0
问题已解决:
以管理员身份运行设置,并使用Windows 7模式。

0

我尝试了好几次,以为是安装过程中的权限和用户问题导致失败。但多亏了ThangLeQuoc给出的专业提示,通过检查安装日志,我找到了原因:

initdb: 无效的区域设置名称 "NorwegianBokm†l,Norway"

调用Die函数(无法通过initdb初始化数据库集群)...

无法通过initdb初始化数据库集群

所以,在安装过程中选择了“默认区域设置”后,一切都正常了。 这是在版本11.6的Postgres上遇到的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接