6

最近几天我一直在尝试安装 PostgreSQL 9.2。我想我尝试了所有可以在网上找到的东西,但服务仍然无法启动。我目前正在运行 Windows 7 SP1。我曾经安装过 PostgreSQL 8.3 并且工作正常,但几周前我决定卸载它。我彻底卸载了它(删除了 postgres 用户和数据文件),现在每次我尝试安装任何版本时,在加载数据库模块时,我都会在安装结束时收到这个非致命错误。我设法看到 postgresql 服务没有启动,或者正如 Windows 所说的那样,它启动然后停止。这是安装日志文件的相关部分:

成功处理771个文件;处理 0 个文件失败

initcluster.vbs 运行完成

脚本标准错误:

正在配置数据库服务器启动...
执行 cscript //NoLogo "C:\Program Files (x86)\PostgreSQL\9.2\installer\server\startupcfg.vbs" 9.2 "NT AUTHORITY\NetworkService" "****" "C:\Program Files (x86)\ PostgreSQL\9.2" "C:\Program Files (x86)\PostgreSQL\9.2\data" "postgresql-9.2"
脚本退出代码:0

脚本输出:
 startupcfg.vbs 运行完成

脚本标准错误:

创建菜单快捷方式...
执行 cscript //NoLogo "C:\Program Files (x86)\PostgreSQL\9.2\installer\server\createshortcuts.vbs" 9.2 "postgres" 5432 "PostgreSQL 9.2 (x86)" "C:\Program Files (x86)\PostgreSQL \9.2" "C:\Program Files (x86)\PostgreSQL\9.2\data" "postgresql-9.2"
脚本退出代码:0

脚本输出:
 启动 FixupFile(C:\Program Files (x86)\PostgreSQL\9.2\scripts\serverctl.vbs)...
   正在打开文件以供阅读...
   正在关闭文件(正在读取)...
   替换占位符...
   正在打开文件进行写入...
   正在关闭文件...
  结束 FixupFile()...
启动 FixupFile(C:\Program Files (x86)\PostgreSQL\9.2\scripts\runpsql.bat)...
   正在打开文件以供阅读...
   正在关闭文件(正在读取)...
   替换占位符...
   正在打开文件进行写入...
   正在关闭文件...
  结束 FixupFile()...
createshortcuts.vbs 运行完成

脚本标准错误:


启动数据库服务器...
执行 cscript //NoLogo "C:\Program Files (x86)\PostgreSQL\9.2\installer\server\startserver.vbs" postgresql-9.2
脚本退出代码:0

脚本输出:
 启动 postgresql-9.2
服务postgresql-9.2启动成功
startserver.vbs 运行完成

脚本标准错误:


正在加载其他 SQL 模块...
执行 cscript //NoLogo "C:\Program Files (x86)\PostgreSQL\9.2\installer\server\loadmodules.vbs" "postgres" "****" "C:\Program Files (x86)\PostgreSQL\9.2" "C:\Program 文件 (x86)\PostgreSQL\9.2\data" 5432
脚本退出代码:2

脚本输出:
 在 postgres 数据库中安装 adminpack 模块...
    执行 'C:\Users\George\AppData\Local\Temp\radA5996.bat'...
psql:服务器意外关闭连接
    这可能意味着服务器异常终止
    在处理请求之前或期间。

无法在“postgres”数据库中安装“adminpack”模块
loadmodules.vbs 运行完成

脚本标准错误:
 程序以错误退出代码结束

运行 cscript 时出错 //NoLogo "C:\Program Files (x86)\PostgreSQL\9.2\installer\server\loadmodules.vbs" "postgres" "****" "C:\Program Files (x86)\PostgreSQL\9.2 " "C:\Program Files (x86)\PostgreSQL\9.2\data" 5432 : 程序以错误退出代码结束

[10:34:28] 将数据目录写入ini文件...
[10:34:28] 将端口号、服务 ID、区域设置和超级用户写入 ini 文件...
[10:34:28] 将 ServiceID(postgresql-9.2) 写入注册表/ini ...
[10:34:28] 将超级用户写入 ini 文件和 Windows 注册表...
[10:34:28] 将服务帐户写入 ini 文件和 Windows 注册表...
[10:34:28] 将服务器描述写入 ini 文件...
[10:34:28] 将服务器品牌写入 ini 文件...
[10:34:28] 将“堆栈生成器是否已禁用”写入 ini 文件...
[10:34:29] 完成运行后安装/升级任务。

创建卸载程序
创建卸载程序 25%
创建卸载程序 50%
创建卸载程序 75%
创建卸载程序 100%
安装完成
4

6 回答 6

3

我有同样的问题。在某一时刻,它需要通过互联网连接获取一个包。这是不对的,因为安装包 s/b 能够在没有连接的情况下安装,但事实就是如此。您的防火墙阻止了安装。这是您需要做的:

关闭 Windows 防火墙(控制面板\所有控制面板项\Windows 防火墙\自定义设置)

如果您使用这个出色的程序,请关闭防火墙控制(从任务栏退出或使用任务管理器来终止 UI 和服务 - 2 项)

用于下载选定的包:关闭密钥保护服务:关闭基本过滤(让您不受保护!- 重新启动 BFE 时将重新启动依赖项) 基本过滤引擎 IKE 和 AuthIP IPsec 密钥模块 IPsec 策略代理 ICS ...

不要忘记重新启动所有保护。

于 2012-12-30T17:01:31.213 回答
2

我在 Win7 x64 上遇到了 Pg 9.2.4 安装程序的类似问题。事实证明,由于停止了 postgres 服务,'adminpack' 模块没有加载。它开始,然后几乎立即终止。您可以手动检查这个正在运行的 Pg 服务,看看它是否可以加载。如果不能,这可能是因为“数据”目录中缺少配置文件。initdb 命令无法创建有效的集群并复制相应的 *.conf 文件。我试图深入研究细节,安装程序对用户权限进行了复杂的检查,这在你(和我)的情况下可能会失败。

只需尝试从 zip 二进制文件安装 Pg。只用了以下命令(不到 20 分钟)。原创文章

1)创建“postgres”windows用户(没有管理员权限)并授予它对您的Pg文件夹和“data”文件夹的完全权限。要从命令行执行此操作,请以管理员身份运行“cmd”(按 Ctrl-Shift-Enter 而不是 Enter 来运行“cmd”)并发出:“net user postgres /add”。然后右键单击您的 Pg 文件夹(和“data”文件夹,如果它在外面)并授予“postgres”的所有权限。

2) 安装 Microsoft Visual C++ 20xx Redistributable Package 附带一键式 Pg 安装程序 (vcredist_x64.exe from Users\"your user"\AppData\Local\Temp\postgresql_installer_ * *** - 由第一次运行时一键式 Pg 安装程序创建的文件夹)。

3) 将 Pg 二进制文件解压缩到您的 Pg 文件夹,并以管理员身份将“cmd”解压缩到其 bin 目录。

4) 运行初始化集群:initdb -U postgres -A password -E utf8 -W -D "path to your Pg folder"\data

5)运行安装windows服务:pg_ctl register -N "postgresql" -U ".\postgres" -D "path to your Pg folder/data" -w

6)打开windows服务列表并打开“postgresql”服务属性。然后在那里为 windows 用户 postgres 设置密码。尝试启动新的 Pg 服务。如果它开始,那么一切都应该没问题。

7) 打开 bin\pgAdmin3,连接到本地服务器并打开 postgres 数据库及其元数据。您应该会看到有关缺少管理服务的投诉并提出更正此问题的建议。只需按确定 - 应该安装“adminpack”。

于 2013-08-26T10:57:12.003 回答
2

只能从用英文编写的 Windows 帐户安装 postgres。例如,从用户“Аня”安装总是失败。

于 2014-05-26T18:58:59.307 回答
1

Solution is to shutdown the windows firewall before installing. After the installation you can enable the windows firewall.

于 2013-01-17T21:48:26.800 回答
1

尝试在 Windows 上具有特殊权限的“C:\Program Files”之外安装。我们遇到了类似的问题,只需安装到 C:\Postres92 中,一切都可以直接使用。

于 2014-02-07T07:46:45.413 回答
0

我有同样的问题,由于程序文件目录中的访问权限受限,因为数据目录是C:\Program Files (x86)\PostgreSQL\9.2\data

更改数据目录以C:\ProgramData\PostgreSQL\9.2\data解决问题。

于 2013-09-06T07:54:42.823 回答