PostgreSQL安装初始化集群失败
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