Win11 安装 PostgreSQL 报错解决方案

devtools/2024/10/19 12:41:01/

一、问题概述

在 Win11 系统中安装 PostgreSQL 时,可能会遇到“Problem running post-install”的报错情况。这一报错给用户带来了极大的困扰,使得安装过程无法顺利进行。

二、报错原因分析

(一)权限不足问题

在 Win11 中,安装后系统用户可能没有安装文件夹内程序的执行权限。这会导致无法初始化数据和注册服务。此外,使用 Microsoft 账号登录系统时,可能会处于非超级管理员状态,从而无法创建用户,进一步影响数据库的安装。

(二)安装包问题

安装包可能存在问题,无法自动创建 postgres 用户,这可能导致“Failed to load sql modules into the database cluster”报错。

三、解决方案详解

(一)添加权限步骤

  1. 找到 PostgreSQL 的安装文件夹。
  2. 右键点击安装文件夹,选择“属性”。
  3. 在“属性”窗口中,选择“安全”选项卡。
  4. 点击“编辑”按钮,添加“Users”用户组,并赋予完全控制权限。确保对安装目录和所有子文件夹都有完全控制权限。
  5. 在带有版本号的文件夹上再次验证用户权限是否正确设置。

(二)创建用户及设置权限

  1. 在 Win11 系统中创建一个名为“postgres”的用户。
    • 打开“控制面板”->“用户账户”->“用户账户”->“管理其他账户”。
    • 点击“添加用户”,输入用户名“postgres”,并设置密码。
  2. 将“postgres”用户添加到管理员群组和“Power Users”群组。
    • 打开“控制面板”->“管理工具”->“计算机管理”。
    • 在“计算机管理”窗口中,选择“本地用户和组”->“组”。
    • 分别找到“Administrators”和“Power Users”组,右键点击选择“属性”。
    • 在“属性”窗口中,点击“添加”按钮,输入“postgres”用户,点击“确定”。
  3. 设置“postgres”用户对 PostgreSQL 安装文件夹的完全控制权限。
    • 回到 PostgreSQL 安装文件夹的“属性”窗口,选择“安全”选项卡。
    • 点击“编辑”按钮,添加“postgres”用户,并赋予完全控制权限。

(三)初始化及注册服务

  1. 以管理员身份运行命令提示符(CMD)。
    • 在开始菜单中搜索“CMD”,右键点击“命令提示符”,选择“以管理员身份运行”。
  2. 切换到 PostgreSQL 安装目录下的“bin”文件夹。
    • 例如,如果安装在“C:\Program Files\PostgreSQL\14\bin”,则在命令提示符中输入:
cd C:\Program Files\PostgreSQL\14\bin
  1. 执行初始化数据库命令。
    • 输入:
initdb.exe -D data

(这里的“data”是数据库的数据存储目录,可以根据实际情况进行修改)。
4. 注册数据库服务。
- 输入:

pg_ctl register -N PostgreSQL -D data

(同样,“data”是数据存储目录)。

(四)启动及常用命令

  1. 在 Windows 服务面板中启动注册的 PostgreSQL 服务。
    • 打开“控制面板”->“管理工具”->“服务”。
    • 找到“PostgreSQL”服务,右键点击选择“启动”。
  2. 常用命令:
    • 启动服务:
pg_ctl start -D data
- 停止服务:
pg_ctl stop -D data
- 删除服务:
pg_ctl unregister -N PostgreSQL

四、总结归纳

通过以上方法,可以有效解决 Win11 安装 PostgreSQL 时出现的“Problem running post-install”报错问题。虽然过程可能较为复杂,但只要按照步骤操作,就能顺利安装和使用 PostgreSQL 数据库在操作过程中,一定要仔细检查每一步的设置,确保权限正确分配,用户正确创建和添加到相应群组。


http://www.ppmy.cn/devtools/127008.html

相关文章

sankey.top - 桑基图/桑吉图/流程图/能量流/物料流/能量分析

sankey.top 桑基图大师(SankeyMaster)是您创建复杂桑基图表的首选工具。轻松输入数据并创建桑基图表,准确揭示复杂的数据关系! 应用 https://apps.apple.com/cn/app/sankeymaster-sankey-diagram/id6474908221 在线编辑器 https://studio.sankeymaste…

Spring Security 如何进行权限验证

阅读本文之前,请投票支持这款 全新设计的脚手架 ,让 Java 再次伟大! FilterSecurityInterceptor FilterSecurityInterceptor 是负责权限验证的过滤器。一般来说,权限验证是一系列业务逻辑处理完成以后,最后需要解决的…

python 区间循环数

目录 区间循环加上步长2: 区间循环加上步长1: 方法3: 区间循环加上步长2: for i in range(0, 11, 2):print(i) 区间循环加上步长1: for i in range(start, stop):# 你的代码逻辑pass 方法3: if __nam…

Redis——事务

文章目录 Redis 事务Redis 的事务和 MySQL 事务的区别:事务操作MULTIEXECDISCARDWATCHUNWATCHwatch的实现原理 总结 Redis 事务 什么是事务 Redis 的事务和 MySQL 的事务 概念上是类似的. 都是把⼀系列操作绑定成⼀组. 让这⼀组能够批量执行 Redis 的事务和 MySQL 事务的区别:…

Spring Boot 3 声明式接口:能否完全替代 OpenFeign?

Spring Boot 3 声明式接口:能否完全替代 OpenFeign? 在微服务架构中,服务间的通信是一个核心问题。OpenFeign,作为一个声明式的HTTP客户端,极大地简化了服务调用和负载均衡的实现。然而,随着Spring Boot 3…

通过前端UI界面创建VUE项目

通过前端UI界面创建VUE项目,是比较方面的一种方式,下面我们详细分析一下流程: 1、找到合适目录 右键鼠标,点击在终端打开 2、开始创建 输入 vue ui 浏览器弹出页面 3、点击Create项目 显示已有文件列表,另外可以点击…

如何快速学会盲打

今天就来给大家分享一下如何快速学会盲打 盲打的基本方法和步骤 手指放置:将双手放在键盘上,左手食指放在F键上,右手食指放在J键上,其他手指分别放在相邻的键位上。熟悉键盘布局:学习26个字母的位置,以及…

框架一 Mybatis Spring SpringMVC(东西居多 后边的没怎么处理)

Mybatis 使用简单的XML或注解来配置和映射原生类型、接 口和Java的POJO (Plain Old Java Objects,普通老式Java对象)为数据库中的记录。 ${}和#{}的区别是 ${}替换成变量的值 #{}替换成? Mybatis中,resultType和ResultMap的区别是 如果数据库列名和…