8

我从戴尔 (XPS 15) 购买了一台装有 Windows 10 Pro 的新笔记本电脑。我总是遇到同样的问题在安装 postgres 期间“运行安装后步骤时出现问题。安装可能无法正确完成。数据库集群初始化失败。” .

我尝试了很多过去线程的解决方案: 将 postgres 安装到程序文件中创建一个名为 postgres 的用户,该用户具有对 postgress 目录的完全访问权限,此处解释为https://www.youtube.com/watch?v=pS_zWDDDSe0 检查新的 win-更新关闭了 Windows 的防火墙和防病毒软件。

运行 cscript 时出错 //NoLogo "C:\develop\postgres/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\develop\postgres" "C:\develop \postgres\data" 5432 "DEFAULT" 0: 程序以错误退出代码结束 运行安装后步骤时出现问题。安装可能无法正确完成 数据库集群初始化失败。[14:03:49] 删除临时脚本目录...创建菜单快捷方式...执行 cscript //NoLogo "C:\develop\postgres\installer\server\createshortcuts_clt.vbs" "PostgreSQL 11" "C:\ develop\postgres" 脚本退出代码: 0

编辑错误日志

Executing batch file 'radAD31B.bat'...
The program "postgres" was found by "C:/develop/postgres/bin/initdb.exe" but was not the same version as initdb.
4

7 回答 7

17

我已经为此苦苦挣扎了几个小时,所以我将其发布给其他任何在这里结束的人。

pgsql-bugs最初,我只能在邮件列表中找到两个错误报告:

BUG #15856:“initdb”找到了“postgres”程序,但与 initdb 的版本不同。

BUG #15970:数据库初始化错误 - initdb.exe 和 postgres 版本不同

具体症状如下:

The program "postgres" was found by ".../initdb.exe" but was not the same version as initdb.

尽管版本匹配,但您会得到:

C:\Program Files\PostgreSQL\11\bin>postgres -V
WARNING:  01000: could not determine encoding for locale
"<some encoding>.utf8": codeset is "CPutf8"

如果这些是您的症状,那么问题在于您将区域/语言设置设置为使用 UTF-8(测试版设置)。这会导致很多程序出现问题,PostgreSQL 就是其中之一。禁用它并重新安装,你应该没问题。

UTF8 区域设置截图

于 2019-09-11T22:52:21.903 回答
4

如果您曾经更改过注册表中的命令行代码编码参数

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun

对于 chcp 65001、chcp 1251 或任何其他,那么这可能是问题所在。

将命令行编码注册表值的值返回为默认值(空)解决了我的问题。

尝试将您的注册表值更改为空:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun

于 2021-08-11T06:43:21.847 回答
3

请按照以下步骤避免此错误

  1. 卸载 PostgreSQL
  2. 如果您有 postgres 用户,请删除
  3. 右键单击我的电脑/这台电脑,然后单击管理 转到本地用户和组,然后用户 新用户输入用户名作为postgres和密码(无论你想要什么),然后单击创建按钮。
  4. 现在右键单击postgres用户并单击属性单击选项卡成员,然后单击此处的添加按钮单击高级,然后为组打开一个新对话框,单击立即查找并选择管理员单击确定按钮。
  5. 现在打开命令提示符/cmd
  6. 在这里输入runas /user:postgres cmd.exe然后回车
  7. cd下载的 Postgresql 文件夹的路径输入
  8. postgresql-xxx-x-windows.exe输入(这里的 x 反映发行版、主要和次要版本)。
  9. 现在重复步骤 4 并删除组管理员并添加高级用户
于 2020-07-15T04:24:31.460 回答
1

刚刚在 postgres 12 中遇到了这个问题,我的解决方法类似于 Atif,但使用命令行:

  1. 卸载 PostgreSQL

  2. 如果 postgres 用户仍然存在,请删除它:

    网络用户 postgres /delete

  3. 使用您可以记住的密码创建 postgres 用户:

    网络用户/添加 postgres [密码]

  4. 将 postgres 用户添加到管理员组:

    网络本地组管理员 postgres /add

  5. 跳过此作为组不再存在于 win 10 并且默认用户应具有必要的权限 - 将 postgres 用户添加到 Power Users 组

  6. 以 postgres 用户身份运行命令窗口:(打开新的命令窗口):

    运行/用户:postgres cmd.exe

  7. 将安装文件复制到该用户可访问的位置并运行它,例如:

    C:\下载\postgresql-12.4-1-windows-x64.exe

  8. 从管理员组中删除 postgres 用户:

    网络本地组管理员 postgres /delete

就是这样。希望这是有用的

于 2020-09-22T12:47:46.860 回答
0

我查看了可用的解决方案,但没有一个对我有用,所以我只是在我的 Windows 10 桌面上创建了一个新用户并在那里进行了安装,它能够成功完成。

于 2020-09-16T12:50:03.480 回答
0

卸载可能不会删除所有注册表项。您可以registry在任务栏中输入搜索并打开Registry Editor.

导航:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE

并删除与postgresql.

于 2021-09-26T11:59:14.820 回答
0

使用 EDB 安装程序在 Windows 上安装 PostgreSQL 是为了让 bald(er) 更快。您可以在 WSL(Linux 的 Windows 子系统)上运行 PostgreSQL 并在 Windows 上连接到它!

以管理员身份打开 Windows 终端/PowerShell(右键单击 Windows 11 上的开始图标 -> Windows 终端(管理员)。键入:

wsl --install

重新启动计算机。登录后 Ubuntu 将自动安装,WSL2 和 Ubuntu 是 Windows 11 的标准配置(查看有关如何选择不同发行版等的文档)按照说明输入所需的用户名和密码。

更新 Ubuntu:

sudo apt update && sudo apt upgrade

安装 PostgreSQL:

sudo apt install postgresql

给“postgres”用户一个密码:

sudo passwd postgres

启动服务并打开 psql shell:

sudo service postgresql start && sudo -u postgres psql

请注意,您创建的密码不是 postgres 的数据库密码,因此除非您创建新用户,否则您可以在 psql shell 中为 postgres 提供一个:

ALTER USER postgres PASSWORD 'mypw';

现在您可以安装 pgAdmin 或使用您自己的程序(在“普通”Windows 中)来确认您可以使用用户 postgres 和他的密码在 127.0.0.1 上使用端口 5432(可能会有所不同)进行连接。

于 2021-10-09T20:21:52.420 回答