1.用户权限不足/未关闭防火墙&杀毒软件
1.1.数据库初始化错误
1.2.SQL模块没有成功加载到数据簇
在安装PostgreSQL时,我们可能会遇到1.1和1.2的情况,其实这两个为一类问题,即安装权限不足。首先检测自己的用户是不是本地组Administrator再进行安装,同时需要关闭360杀毒软件或者防火墙。如果不是,切换到Administrator账户下安装。
通过Win+R键,打开lusrmgr.msc。查看用户描述,也可以使用其他办法。最好在管理计算机(域)的内置账户(Administrator)下安装,因为之前把User组账户设置为Administrator后安装依然出现错误。
1.3 本类问题网上具体总结分类
已知在Microsoft Visual C++正常安装或者.dll文件没有缺失和被占用的情况下,一般达成以上条件就能正常安装PostgreSQL。该类问题较为常规,且网上教程丰富。大体分为几类:
A.权限类:
关闭360等杀毒软件(Windows11为Windows安全中心的病毒和威胁防护)和防火墙。创建用户”postgres”并且设置权限为Administration,通过cmd指令加载安装包进行安装。并更改安装路径的文件夹权限为完全控制,同时添加postgres到用户组中。其实如果直接用内置本地账户Administrator安装就不用进行这一步操作,因为相当于电脑已经自己设置好了。
B.软件兼容类:
I.下载较老版本的软件(与系统兼容问题,一般来说按照官网下载界面推荐的即可)。
II.卸载Navicat等相关联软件。
C.安装选项参数/修改conf文件参数:
I.修改data目录下的conf文件(pg_hba.conf 或者 postgresql. conf )
II.安装时更改locale的参数为C。
刚开始我也是先在网上直接搜索错因,然后根据常规回答来进行摸索,但是还是不行,然后经过了以上流程后,出现了下面第二类错误,后面也是与这一步相似,慢慢地找到原因。
2.MicrosoftVisual C++运行库未完全安装/.dll文件被占用&损坏
2.1应用程序无法启动
以下两张图,其实是应用程序错误产生的结果,也就是data文件夹虽然不是空的,但是缺失了很多文件以至于无法被识别。
这个是因为部分运行库没有安装,或者.dll文件损坏和被占用。虽然没有明确提出,但是在后面的流程中可以发现。
那么首先介绍下,dll即动态链接库,为Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。
Windows 操作系统中有一些作为 DLL 实现的文件:
ActiveX 控件 (.ocx) 文件:ActiveX 控件的一个示例是日历控件,它可以从日历中选择日期。
运行库文件:运行库是程序在运行时所需要的库文件。通常运行库是以DLL形式提供的。运行库是一个经过封装的程序模块,对外提供接口,只要知道接口参数就可以自由使用。如果不使用运行库,每个程序中都会包含很多重复的代码,而使用运行库,可以大大缩小编译后的程序的大小。但另一方面,由于使用了运行库,所以在分发程序时就必须带有这些库,比较麻烦。如果在操作系统中找不到相应的运行库程序就无法运行。
0xc0000022,是一种c语言的代码,0x代表的是十六进制。还有其他以0xc开头的错误,说明这些错误和C语言编程有关。通常可能会认为以上错误是软件问题,其实并不是,部分软件或者游戏需要依赖运行库才可以运行的。
2.2工具与流程
工具网盘下载链接:
123 云盘:https://www.123pan.com/s/aDE9-uVsyh
百度网盘:https://pan.baidu.com/s/1JRiGK7axle8pgrtvL0Gb1w?pwd=0000
提取码:0000
工具网盘下载链接转自视频介绍:
【下好的游戏打不开?3 分钟教你修复系统运行库】 https://www.bilibili.com/video/BV1uS4y1p7cu/?share_source=copy_web&vd_source=c350d98424ac49a8c3c44b8e4d426e46
这里可以运行Visual C++ 运行库合集进行安装,详细参见程序内说明或者
【【小工具】一键安装Visual C++全部运行库】https://www.bilibili.com/video/BV1AF411M7Jo/?share_source=copy_web&vd_source=c350d98424ac49a8c3c44b8e4d426e46。
如果运行库安装完成,再检查.dll文件。可以使用DirectX_Repair。
每台电脑配置情况有所不同,具体操作可以参考以下链接:
http://t.csdn.cn/STZwo
http://t.csdn.cn/0NYEq
第三个主要是配置参数,可以根据需要进行查阅,前两个基本可以实现操作。
http://t.csdn.cn/eNhRJ
2.3 本类问题网上具体总结分类
跟第一步类似,一开始还是直接根据
initdb.exe-应用程序
错误和应用程序无法正常启动(0xc0000022)。请单击“确定”关闭程序。在网上进行查阅,主要分为以下几种回答:
a.系统组件(DirectPlay)未开启
b.系统文件受损:command prompt中输入“sfc /scannow”
c.修改应用程序的权限
但是进行了以上三种操作,发现都是按照回答中要求所设定的,且第三种情况更是在第一步就做好了调整。因此没有从根本上解决,直到用了DirectX_Repair进行修复。
3.结论
我的电脑在完成以上操作后就可以正常安装了,根据遇到错误选择操作流程,如果安装过程遇到2类错误,先确定是否达到第一部分所说的条件,再进行操作,不过一般来说会先出现1类错误,因为我的电脑是在更改为Administrator用户安装后才出现的2类错误。如果只是出现第一类错误,那么基本上按着第一步的流程以及网上总结的细节进行操作后就能成功安装了。
后续就可以正常地运行SQL Shell(psgl)和PgAdmin4了,解决这两个程序的常见错误也是在之前正常安装PostgreQSL的基础上进行的。