PostgreSQL:数据库集群初始化失败


15

双方C:\PostgreSQLC:\PostgreSQL\data拥有postgres完全访问和管理权限的用户。

我以管理员身份从postgres用户运行了postgresql-9.1.2-1-windows.exe。目标C:\PostgreSQL

我尝试的每种方式都得到“数据库集群初始化失败”。

问题

  • 是否可以在不作为Windows服务的情况下运行所有​​程序?
  • 有作为Windows服务安装的解决方法吗?

我正在尝试设置PostGIS以与GeoDjango一起使用。

我能够手动安装PostGIS。PostgreSQL的新手,我对所有这些都充满信心危机。第一次从MySQL到PostgreSQL。


来自C:\ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.log的相关日志输出:

WScript.Network initialized...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C: (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL\data (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can write to the data directory (using icacls) to  Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Failed to ensure the data directory is accessible (C:\PostgreSQL\data)
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb

有什么建议吗?


请参阅安装日志(它应该在磁盘上的某个位置,可能在%TEMP%中)
filiprem 2012年

请查看相关的日志输出。
Larry Eitel'1

Postgres Windows用户是否对C:\ PostgreSQL \ data 具有完全的读取和写入权限?
a_horse_with_no_name 2012年

是的,并且根据其他地方的建议,我向用户提供了对该目录的“修改”权限。
拉里·艾特尔

@LarryEitel:但是“ 未能确保数据目录可访问(C:\ PostgreSQL \ data) ”似乎表明不是这样。
a_horse_with_no_name 2012年

Answers:


17

在Windows 7上安装9.1.4时,我遇到了同样的问题。我设法找到了可行的在线解决方案

我遵循的步骤是:

  1. 卸载PostgreSQL
  2. 如果postgres用户仍然存在,请删除它。

    net user postgres /delete
  3. 使用您可以记住的密码创建postgres用户

    net user /add postgres <password>
  4. 将postgres用户添加到Administrators组

    net localgroup administrators postgres /add
  5. 将postgres用户添加到Power Users组

    net localgroup "power users" postgres /add
  6. 以postgres用户身份运行命令窗口

    runas /user:postgres cmd.exe
  7. 从命令窗口中运行安装文件。

    C:\Download\postgresql-9.1.4-1-windows.exe

    这应该成功运行安装。

  8. 从Administrators组中删除postgres用户。

    net localgroup administrators postgres /delete

感谢您的反馈。不幸的是,此后我将这个项目转移到了Mongodb。我目前无法确认您的建议。
拉里·艾特尔

我想确认该解决方案对我有用。设置:Postgres 9.1 64位和PostGIS 2.0.1 x64
Chris

1
这是重新安装作为服务运行的PostgreSQL的一个众所周知的问题,我个人已经遇到了此答案解决的情况。安装程序在删除或升级时会留下一个帐户,但是第二次安装不会考虑此因素;安装之间产生的凭证差异会造成严重破坏。最常见的答案是伊姆拉恩给出的答案。卸载,删除有问题的帐户,然后重新安装。
艾利·佩恩

@AveryPayne:或者:记住postgres服务帐户的正确密码。我已经在已经安装了Postgres的系统上安装了很多,而对于现有的服务帐户却从未遇到过问题。不过,安装程序中的措词可以得到改进(使用9.2 Postgres不再使用显式帐户了)
a_horse_with_no_name 2012年

请记住,对于第4步,administrators它取决于语言环境。例如,在PT-BR中为administradores。并且,在步骤5中,"power users""usuários avançados"
GuiRitter

1

就我而言(从Windows的%temp%文件夹中的postgresql.log文件中看到),这是因为即使c:\ windows \ system32文件夹的路径是在安装程序中给出的,安装程序也无法找到doskey.exe。 Windows的环境变量路径。
因此,我打开了一个命令提示符,set PATH=%PATH%;c:\windows\system32从命令提示符本身输入并运行安装程序。有效!:)


1

以上都不对我有用。我没用过postgres。

因此,我删除/卸载了所有内容。冉cmd为管理员。

然后从命令行(以管理员身份)运行安装程序,并为数据目录选择一个全新的位置。

经过半天的扑克游戏,我现在成功地重新安装了postgres。


1

尝试安装9.2.4时出现相同的错误消息。我的问题是,即使Win2k8服务器将%SYSTEMROOT%\ system32作为路径的一部分,也没有程序可以“看到” C:\ Windows \ system32中的任何内容。在初始化程序期间,安装程序会大量使用icacls.exe。由于我的路被搞砸了,安装程序被炸了。

将C:\ Windows \ system32明确添加到SYSTEM的Path环境变量并以管理员身份重新运行安装程序后,一切正常。


0

此问题与文件夹的写权限有关。例如,将文件夹/数据创建到PostgreSQL \ 9.2中,并向用户授予完全权限。尝试重新安装。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.