我无法安装Postgresql。 我已经尝试了所有方法:
- 我以管理员身份运行安装程序。
- 我创建了一个postgresql用户,并将其添加到管理员组中。
- 我直接在C:\postgresql上安装它。
但是都没有成功。 信息:我使用的是Windows 8操作系统。
我无法安装Postgresql。 我已经尝试了所有方法:
但是都没有成功。 信息:我使用的是Windows 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
。了解正在发生的事情可以更快地解决问题。
对我来说,每一种方法都失败了,包括这里提到的所有解决方案。然后在研究了一下后,我成功地使用了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使用它。
不要使用EDB安装程序。现在有BigSQL替代品。
我尝试安装Postgres 10.3时遇到了同样的问题。以管理员身份运行并没有帮助我解决问题。但是,当我将安装目录从默认的Program Files文件夹更改为C驱动器中的新文件夹时,它成功地安装了。
在WSL(Windows子系统Linux)上运行PostgreSQL,并在Windows上连接它。
以管理员身份打开Windows终端/PowerShell(右键单击Windows 11的开始图标 -> Windows终端(管理员)。输入:
wsl --install
sudo apt update && sudo apt upgrade
sudo apt install postgresql
sudo passwd postgres
启动服务并打开 psql shell:
sudo service postgresql start && sudo -u postgres psql
ALTER USER postgres PASSWORD 'mypw';
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"作为我的数据文件夹。安装过程完全没有任何问题。
我尝试了好几次,以为是安装过程中的权限和用户问题导致失败。但多亏了ThangLeQuoc给出的专业提示,通过检查安装日志,我找到了原因:
initdb: 无效的区域设置名称 "NorwegianBokm†l,Norway"
调用Die函数(无法通过initdb初始化数据库集群)...
无法通过initdb初始化数据库集群
所以,在安装过程中选择了“默认区域设置”后,一切都正常了。 这是在版本11.6的Postgres上遇到的问题。