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

Had*_*s85 4 windows postgresql-11

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

我尝试了过去线程的许多解决方案:不将postgres安装到progam文件中,创建一个名为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:\ developer \ 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.
Run Code Online (Sandbox Code Playgroud)

小智 9

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

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun

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

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

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

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun

  • 这个解决方案就像魔术一样奏效。但是,我无法理解 Autorun 字段值对于 postgres 执行 initdb 有何影响。 (2认同)

sim*_*mon 5

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

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

错误#15856:程序“ postgres”由“ initdb”找到,但与initdb版本不同。

错误#15970:DB初始化错误-initdb.exe和Postgres版本不相同

具体症状为:

The program "postgres" was found by ".../initdb.exe" but was not the same version as initdb.
Run Code Online (Sandbox Code Playgroud)

尽管版本匹配,但您会得到以下信息:

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

如果这些是您的症状,则问题在于您已将地区/语言设置设置为使用UTF-8(测试版设置)。这会导致很多程序出现问题,而PostgreSQL是其中之一。禁用此功能并重新安装,就可以了。

UTF8区域设置屏幕截图

  • 你是怎么发现这一点的?我会花几天时间!非常感谢你!!!! (4认同)