Cel*_*tas 6 postgresql windows command-line
(注意:这个问题已经完全改写了原来的形式,所以它反映了实际问题,并将帮助其他人找到相同问题的解决方案)。
我仍然无法在我的 Windows 7 Ultimate x64 计算机上成功安装 PostgreSQL。有关一些历史,请参阅此先前问题。
我做了一个新的 9.2 版本,我得到的唯一错误是这个:
它写道:
“运行安装后步骤时出现问题。安装可能无法正确完成。数据库集群初始化失败”。
即使在我完全手动卸载 PostgreSQL 和 pgAmdin-III 之后,也会发生这种情况:
Error stopping service postgresql-x64-9.2
。HKEY_LOCAL_MACHINE\SOFTWARE
和HKEY_CURRENT_USER\SOFTWARE
postgres
使用的用户帐户net user postgres /delete
(在开始菜单中右键单击“命令提示符”,选择“以管理员身份运行”)postgres
用户配置文件C:\Program Files\PostgreSQL\
目录,包括%appdata%内的数据目录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
Run Code Online (Sandbox Code Playgroud)
稍后又出现另一个错误:
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
Run Code Online (Sandbox Code Playgroud)
看来这个问题的根本原因可能是@Celeritas 的计算机的COMSPEC
环境变量值不正确。它有一个尾随分号,而不是正常的:
C:\Windows\system32\cmd.exe
Run Code Online (Sandbox Code Playgroud)
它是:
C:\Windows\system32\cmd.exe;
Run Code Online (Sandbox Code Playgroud)
这个一字之差就够了。以上不是有效的命令提示符路径,因此popen()
调用失败。不幸的是,而不是像这样有用的东西:
'"C:\Windows\system32\cmd.exe;"' is not recognized as an internal or external command, operable program or batch file
Run Code Online (Sandbox Code Playgroud)
相反,它报告了令人愉快的有用错误No error
:
initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
Run Code Online (Sandbox Code Playgroud)
见相关:
我已将此报告给安装程序团队并编写了一个 wiki 条目来描述它。请参阅博客文章。
问题最终通过以下方式解决:
COMSPEC
环境变量尽管在此之前还有很多实际上不需要解决此问题,包括手动完全手动干净卸载 PostgreSQL。
现在我只想找到编写修改这个环境变量的程序的人。
归档时间: |
|
查看次数: |
29544 次 |
最近记录: |