欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PostgreSQL安装初始化集群失败

程序员文章站 2024-02-28 08:50:46
...

PostgreSQL安装初始化集群失败


前言

在不久前我在Windows Server 2012 环境安装PostgreSQL及PostGIS出现此问题找了一下文章,但感觉还是记录一下过程加深印象比较好。

报错如下:Problem running post-install step.Installation may not complete correctly the database cluster initialisation failed.
意思是:安装过程中,初始化数据库集群失败


一、造成原因有什么?

由于使用未使用系统管理员账户及在C盘下安装postgresql权限不足原因可能导致的数据库初始化失败。

二、解决步骤

1.首先查看系统用户,是否存在postgres用户

因为PostgreSQL安装报错,造成默认用户Postgres并未创建;所以第一步确定是否已存在Postgres用户。
在cmd中执行以下命令查看

net user

2.没有postgres用户便创建postgres用户

此步骤可以使用管理员模式cmd中创建也可以直接到系统中创建。

3.移除超级管理员对数据存放文件夹data权限

*其他管理员权限过大会导致执行后面命令报其他错误
数据目录:C:\PostgreSQL\data

C:\PostgreSQL>cacls data /e /t /r administrator

4.将data目录的权限赋给postgres用户;

*否则使用postgres账户也无法初始化数据库
数据目录:C:\PostgreSQL\data

C:\PostgreSQL>cacls data /e /t /r postgres:C

5.用postgres用户打开cmd

*去除管理员data权限后,切换到有权限的postgres下进行操作
数据目录:C:\PostgreSQL\data

C:\PostgreSQL>runas /user:postgres cmd.exe
输入 postgres 的密码:
试图将 cmd.exe 作为用户 "SURE-PC\postgres" 启动...

6.初始化数据库

*postgres账户下执行以下命令,其他账户执行会报错;在安装目录bin文件夹下执行

C:\PostgreSQL\bin>initdb.exe -D ../data -E UTF-8 --locale=chs -U postgres -W

7.启动数据库

*postgres账户下执行以下命令,其他账户执行会报错;在安装目录bin文件夹下执行

C:\PostgreSQL\bin>pg_ctl.exe -D C:\PostgreSQL\data -l logfile start
或
"pg_ctl" -D "../data" start


总结

提示:以上操作虽然启动了postgresql但没有postgresql服务,只是进程中postgresql在运行;
目前我尝试过生成服务但却不能运行起来,此问题还待解决,
所有重启PostgreSQl仍需要停止进程再重新执行7中的命令;

本人还并不太熟悉数据库方面,文章中如果存在问题欢迎指正

参考文章:
1、 在windows下手动初始化PostgreSQL数据库教程

上一篇: Ubuntu快速安装eclipse

下一篇: