Win11 安装 PostgreSQL 报错解决方案

一、问题概述

在 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

  3. 执行初始化数据库命令。

    • 输入:

    initdb.exe -D data

(这里的"data"是数据库的数据存储目录,可以根据实际情况进行修改)。

  1. 注册数据库服务。
  • 输入:

    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 数据库。在操作过程中,一定要仔细检查每一步的设置,确保权限正确分配,用户正确创建和添加到相应群组。

相关推荐
六月闻君8 分钟前
MySQL 报错:1137 - Can‘t reopen table
数据库·mysql
SelectDB技术团队17 分钟前
兼顾高性能与低成本,浅析 Apache Doris 异步物化视图原理及典型场景
大数据·数据库·数据仓库·数据分析·doris
不是二师兄的八戒18 分钟前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
爱编程的小生30 分钟前
Easyexcel(2-文件读取)
java·excel
inventecsh33 分钟前
mongodb基础操作
数据库·mongodb
白云如幻37 分钟前
SQL99版链接查询语法
数据库·sql·mysql
带多刺的玫瑰1 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法
爱吃烤鸡翅的酸菜鱼1 小时前
MySQL初学之旅(4)表的设计
数据库·sql·mysql·database
计算机毕设指导61 小时前
基于 SpringBoot 的作业管理系统【附源码】
java·vue.js·spring boot·后端·mysql·spring·intellij-idea
Gu Gu Study1 小时前
枚举与lambda表达式,枚举实现单例模式为什么是安全的,lambda表达式与函数式接口的小九九~
java·开发语言