(注意:此问题已从其原始形式强制改写,因此它反映了实际问题,并将帮助其他人找到相同问题的解决方案)。
我仍然无法在我的 Windows 7 Ultimate x64 计算机上成功安装 PostgreSQL。有关一些历史,请参阅此先前的问题。
我重新灌输了 9.2,我得到的唯一错误是这个:
上面写着:
“运行安装后步骤时出现问题。安装可能无法正确完成。数据库集群初始化失败”。
即使在我完全手动卸载 PostgreSQL 和 pgAmdin-III 之后也会发生这种情况:
- 运行 PostgreSQL 卸载程序,失败并出现错误
Error stopping service postgresql-x64-9.2
。 - 删除了 PostgreSQL下
HKEY_LOCAL_MACHINE\SOFTWARE
的所有 PostgreSQL 相关注册表项HKEY_CURRENT_USER\SOFTWARE
- 删除了在管理员命令提示符中
postgres
使用的用户帐户net user postgres /delete
(在开始菜单中右键单击“命令提示符”,选择“以管理员身份运行”) - 删除了
postgres
用户配置文件 - 删除
C:\Program Files\PostgreSQL\
目录,包括%appdata%内的数据目录 - 删除了一些指向 PostgreSQL 的 PgAdmin-III 注册表项
- 删除了 postgres 的服务帐户
services.msc
当我重新启动并再次尝试安装程序时,它会失败并显示相同的消息。
来自的install-postgresql.log
文件%TEMP%
包含:
Executing cscript //NoLogo "C:\Program Files\PostgreSQL\9.2/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Program Files\PostgreSQL\9.2" "C:\Program Files\PostgreSQL\9.2\data" 5432 "DEFAULT"
Script exit code: 1
稍后又出现另一个错误:
creating template1 database in C:/Program Files/PostgreSQL/9.2/data/base/1 ... initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
在此处查看完整的安装程序日志文件下载。
看来此问题的根本原因可能是@Celeritas 的计算机的
COMSPEC
环境变量值不正确。它有一个尾随分号,所以不是正常的:它是:
这一个字符的差异就足够了。以上不是有效的命令提示符路径,因此
popen()
调用失败。不幸的是,而不是有用的东西,比如:相反,它报告了令人愉快的有用错误
No error
:见相关:
我已将此情况报告给安装团队并写了一个 wiki 条目来描述它。见博文。
该问题最终通过以下方式解决:
COMSPEC
环境变量尽管在此之前还有很多实际上不需要解决这个问题,包括手动完全手动彻底卸载 PostgreSQL。
现在我只想找到编写修改这个环境变量的程序的人。
从这个答案https://dba.stackexchange.com/a/248584/185153
如果您在 Windows 10 上使用区域设置中的代码页 UTF-8(上面链接中的图片),根本原因是:
initdb
initdb
检查版本就像调用postgres -V
postgres -V
不识别CPutf8
然后返回一个不匹配的结果。在正确修复之前,您可以取消选中 UTF-8 代码页框并重新启动,它会好的。
这也可以在 PostgreSQL 12 中重现。
感谢@simon 的这一发现。
为这个问题苦苦挣扎了好几天。终于得到了 EDB 团队的帮助,我的问题通过以下步骤得到了解决:
1)打开命令提示符并转到以下目录。
cd "C:\Program Files\PostgreSQL\10\bin"
2) 进入“C:\Program Files\PostgreSQL\10\bin”目录后,执行以下命令。
.\initdb.exe -D "C:\Program Files\PostgreSQL\10\data"
3) 在此命令结束时,您将被提升为执行 pg_ctl 命令以启动 Postgres 集群。请执行命令,一旦你在服务器启动时收到一条消息,你就可以使用 Postgres 数据库了。
注意:不是10用户安装的任何版本。如果在第三步中的pg_ctl命令在\bin目录下运行后出现错误,则尝试在\data目录下运行它。上述过程后重新运行安装程序。
问题:
在 Windows Server 2019 上安装 13.1.1 失败并显示消息
我的 COMSPEC 环境变量配置正确。
我的 UTF-8 代码页设置被禁用。
手动调用 initdb 失败,原因如下:
可能的原因:
驱动器 D:使用 ReFS 格式化。在 NTFS 驱动器上初始化没有问题。
解决方案:
初始化驱动器 C:\PostgreSQL 上的数据库,然后将文件夹复制到 D:\PostgreSQL。
以普通用户(不是管理员)打开终端并运行:
启动 psql shell 并使用用户 myUser 登录。然后,您可以根据需要创建一个 postgres 用户:
对于 2022 年仍在为此苦苦挣扎的人。在 Windows 10 上唯一对我有用的是选择英美作为本地环境,而不是我自己的拉丁语言环境。