Windows安装PostgreSQL数据库 无法初始化数据库问题
作者:jianxuanbing
本文为作者原创,转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/9160896.html
背景
由于项目的需要,使用PostgreSQL
数据库,因此在Windows上安装PostgreSQL
数据库。但是在安装后,无法访问本地数据库,这个时候查看/data
目录,没有任何文件。而且安装过程中,弹出提示框
Problem running post-install step.Installation may not complete correctly the database cluster initialisation failed.
意思是:安装过程中,初始化数据库集群失败
系统环境
- 操作系统:Windows 10 Pro
- PostgreSQL版本:10.4-1
- 账号:非超级管理员账号
原因
在Windows 10中,如果用的是Microsoft
账号,则不是超级管理员,这个时候无法创建用户,导致通过安装包进行安装时,无法创建相应的DB用户。而且在账号中无法看到postgres
这个用户,因此可猜测出,权限不足时,无法创建相应用户的账号,而无相应账号时,无法初始化DB。
解决方案
查看用户
net user
创建Postgres用户
net user postgres postgres /add
在数据库根目录建立data目录
D:\Dev\PostgreSQL\10>md data
移除超级管理员对data目录的权限
D:\Dev\PostgreSQL\10>cacls data /e /t /r administrator
处理目录:D:\Dev\PostgreSQL\10\data
将data目录的权限赋给postgres
用户
D:\Dev\PostgreSQL\10>cacls data /e /t /r postgres:C
处理目录:D:\Dev\PostgreSQL\10\data
初始化数据库
D:\Dev\PostgreSQL\10\bin>initdb.exe -D ../data -E UTF-8 --locale=chs -U postgres -W
初始化后,需要输入新的用户密码,用于登录数据库。
启动数据库
D:\Dev\PostgreSQL\10\bin>pg_ctl.exe -D D:\Dev\PostgreSQL\10\data -l logfile start
注册PostgresSQL
服务
D:\Dev\PostgreSQL\10\bin>pg_ctl.exe register -N PostgreSQL -D D:\Dev\PostgreSQL\10\data
常用命令
启动PostgresSQL
服务
net start PostgreSQL
停止PostgresSQL
服务
net stop PostgreSQL
删除PostgresSQL
服务
D:\Dev\PostgreSQL\10\bin>pg_ctl.exe unregister -N PostgreSQL
分类:
数据库
, PostgreSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端