Win 10 Postgresql 11数据库集群初始化失败

时间:2019-02-11 13:14:20

标签: windows postgresql-11

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

我尝试了很多有关过去线程的解决方案: 不将postgres安装到progam文件中 创建一个名为postgres的用户,该用户具有对postgress目录的完全访问权限,这里https://www.youtube.com/watch?v=pS_zWDDDSe0进行了说明 检查新的胜利更新 关闭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.

5 个答案:

答案 0 :(得分:7)

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

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

BUG #15856: The program "postgres" was found by "initdb" but was not the same version as initdb.

BUG #15970: Db initialization error - initdb.exe and postgres not same version

具体症状是:

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 Region Settings screenshot

答案 1 :(得分:3)

请按照以下步骤操作以避免出现此错误

  1. 卸载PostgreSQL
  2. 如果您有postgres用户,请删除
  3. 右键单击我的电脑/此PC ,然后单击管理转到本地用户和组,然后单击用户 新用户输入用户名作为 postgres 和密码(任意输入),然后单击创建按钮。
  4. 现在右键单击 postgres 用户,然后单击属性,单击成员标签,然后单击添加按钮,点击高级,然后为网上论坛打开一个新对话框,点击立即查找,然后选择管理员,点击确定按钮。
  5. 现在打开命令提示符/ cmd
  6. 在此处键入 runas / user:postgres cmd.exe ,然后按Enter键
  7. cd 下载的Postgresql文件夹的路径输入
  8. postgresql-x.x.x-x-windows.exe 输入(此处x表示发行版,主要版本和次要版本)。
  9. 现在重复步骤4,并删除组管理员,并添加高级用户

答案 2 :(得分:1)

postgres 12遇到了这个问题,我的解决方法与Atif相似,但是使用了命令行:

  1. 卸载PostgreSQL

  2. 删除postgres用户(如果仍然存在):

    净用户postgres /删除

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

    网络用户/ add postgres [密码]

  4. 将postgres用户添加到Administrators组:

    net localgroup管理员postgres / add

  5. 跳过此组作为组在Win 10和默认用户上不再存在 应该具有必要的权限-将postgres用户添加到 超级用户组

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

    runas / user:postgres cmd.exe

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

    C:\ Download \ postgresql-12.4-1-windows-x64.exe

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

    net localgroup管理员postgres / delete

就是这样。 希望这有用

答案 3 :(得分:0)

我已经查看了可用的解决方案,但没有一个适合我,因此我只是在Windows 10桌面上创建了一个新用户,并在那里进行安装,便能够​​成功完成。

答案 4 :(得分:0)

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

<块引用>

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun

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

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

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

<块引用>

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun