谦谦均 2023-10-24 10:33 采纳率: 0%
浏览 20
已结题

postgreSQL使用initdb.exe的时候提示子进程已退出

使用脚本安装postgreSQL数据库,在初始化的时候报错。
脚本指令:
D:\Database\pgsql\bin\initdb.exe -D D:\Database\pgsqldata -E UTF-8 --locale=chs -U postgres
该指令执行日志:

属于此数据库系统的文件宿主为用户 "AUS".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese_China.936"进行初始化.
initdb: could not find suitable text search configuration for locale "Chinese_China.936"
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
创建目录 D:/Database/pgsqldata ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Hong_Kong
创建配置文件 ... 成功
子进程已退出, 退出码为 1
initdb: 删除数据目录 "D:/Database/pgsqldata"
正在运行自举脚本 ...

对比正常的流程,这里多了

子进程已退出, 退出码为 1
initdb: 删除数据目录 "D:/Database/pgsqldata"

分析:是因为这个子进程已经退出,导致数据目录被删了,后面过程才无法走下去。我想知道为什么会有这个子进程退出,同一个电脑上,大部分时间可以正常安装,这个现象只出现了两次。

  • 写回答

18条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-24 10:33
    关注
    获得0.60元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    出现子进程退出的情况可能有多种原因,以下是一些可能的解决方案:

    1. 检查locale参数是否正确设置。在指令中,你使用了--locale=chs参数,但是报错中显示找不到适合的文本搜索配置,可能是因为该locale配置不正确。你可以尝试使用--locale=C.UTF-8参数,或者根据你的需求选择正确的locale配置。

    2. 检查文本搜索配置文件是否存在。报错提示中指出缺省的文本搜索配置将会被设置为"simple",但是如果系统中不存在该配置文件,那么initdb会退出。你可以确认一下是否存在share/extension/bsearch_chinese.936.control文件,如果不存在,可以尝试从其他正常安装的PostgreSQL实例中复制该文件到相应目录,并重新运行initdb。

    3. 检查数据库簇的权限设置。报错中提到数据库簇将使用用户"AUS"作为文件宿主,但是该用户必须是服务器进程的宿主。请确保该用户拥有足够的权限执行相应的操作。

    4. 检查文件系统的权限设置。将数据目录设置为D:/Database/pgsqldata,请确保该目录对用户"AUS"有足够的权限进行读写操作。

    5. 检查其他可能的问题。如果以上解决方案都不起作用,你可以在系统日志中查找更多关于子进程退出的错误信息。另外,也可以尝试重新下载和安装PostgreSQL,确保安装文件没有损坏,并且按照正确的步骤进行安装。

    希望以上解决方案能够帮助你解决问题。如果问题仍然存在,请提供更多详细的错误信息和环境配置,以便我们能够更好地帮助你。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退