PostgreSQL安装异常:Problem running post-install step。

做下记录,自己遇见的问题。翻看了很多资料,包括设置文件夹权限等,都无法解决。
最后个人遇见的这个错误,只需手动启动数据库服务即可。
转载请注明出处:https://blog.csdn.net/hx7013/article/details/124126849

一、错误详情

hx7013

Problem running post-install step. Installation may not complete correctlty.
The database cluster initialisation failed.

Google translate

运行后安装步骤的问题。 安装可能无法完成正确。
数据库群集初始化失败。

二、解决方法

既然安装成功,只是初始化数据库失败,那么可以尝试手动初始化数据库

环境说明:
Postgresql 14.2-2 windows-x64
Windowns Server 2019

安装路径:
D:\PostgreSQL

数据库路径:
D:\databases


1. 手动初始化数据库目录

找到安装目录下的bin文件夹,使用initdb命令,手动初始化数据库目录D:\databases

D:\PostgreSQL\bin>initdb.exe -D D:\databases

hx7013

2. 开启数据库服务

找到安装目录下的bin文件夹,使用pg_ctl命令,注册一个名为postgresql14的服务,并指定数据库目录为D:\databases

D:\PostgreSQL\bin>pg_ctl.exe register -N postgresql14 -D D:\databases

hx7013
至此,如果你也是初始化数据库失败,现在应该已经能在系统服务内找到postgresql14这个服务了,双击并启动这个服务。
hx7013
启动服务时可能会出现 错误5:拒绝访问
查看发现PostgreSQL的服务依存于网络服务账户,这种问题直接给Postgresql的安装目录数据库目录的权限里添加NETWORK_SERVER账户的控制权即可。

D:\PostgreSQL
D:\databases




3. 用户问题

由于使用了Administrator来新建了数据库,所以在用pgAdmin或者命令行登录的时候,会导致用户名为Administrator
可以使用Administrator正常登录后,创建postgres用户。


三、initdbpg_ctl参数说明

1. initdb

initdb 初始化一个 PostgreSQL 数据库簇.

使用方法:
  initdb [选项]... [DATADIR]

选项:
  -A, --auth=METHOD         本地连接的默认认证方法
      --auth-host=METHOD    本地的TCP/IP连接的默认认证方法
      --auth-local=METHOD   本地socket连接的默认认证方法
  -D, --pgdata=DATADIR      当前数据库簇的位置
  -E, --encoding=ENCODING   为新数据库设置默认编码
  -g, --allow-group-access  允许组对数据目录进行读/执行
  -k, --data-checksums      使用数据页产生效验和
      --locale=LOCALE       为新数据库设置默认语言环境
  --lc-collate, --lc-ctype, --lc-messages=LOCALE
  --lc-monetary, --lc-numeric, --lc-time=LOCALE
                            为新的数据库簇在各自的目录中分别
                            设定缺省语言环境(默认使用环境变量)
      --no-locale           等同于 --locale=C
      --pwfile=FILE         对于新的超级用户从文件读取口令
  -T, --text-search-config=CFG
                            缺省的文本搜索配置
  -U, --username=NAME       数据库超级用户名
  -W, --pwprompt            对于新的超级用户提示输入口令
  -X, --waldir=WALDIR       预写日志目录的位置
      --wal-segsize=SIZE    WAL段的大小(兆字节)

非普通使用选项:
  -d, --debug               产生大量的除错信息
      --discard-caches      设置debug_discard_caches=1
  -L DIRECTORY              输入文件的位置
  -n, --no-clean            出错后不清理
  -N, --no-sync             不用等待变化安全写入磁盘
      --no-instructions     不要打印后续步骤的说明
  -s, --show                显示内部设置
  -S, --sync-only           只同步数据目录

其它选项:
  -V, --version             输出版本信息, 然后退出
  -?, --help                显示此帮助, 然后退出

如果没有指定数据目录, 将使用环境变量 PGDATA

2. pg_ctl

pg_ctl 是一个用于初始化、启动、停止或控制PostgreSQL服务器的工具.

使用方法:
  pg_ctl init[db]   [-D 数据目录] [-s] [-o 选项]
  pg_ctl start      [-D 数据目录] [-l 文件名] [-W] [-t 秒数] [-s]
                    [-o 选项] [-p 路径] [-c]
  pg_ctl stop       [-D 数据目录] [-m SHUTDOWN-MODE] [-W] [-t 秒数] [-s]
  pg_ctl restart    [-D 数据目录] [-m SHUTDOWN-MODE] [-W] [-t 秒数] [-s]
                    [-o 选项] [-c]
  pg_ctl reload     [-D 数据目录] [-s]
  pg_ctl status     [-D 数据目录]
  pg_ctl promote    [-D 数据目录] [-W] [-t 秒数] [-s]
  pg_ctl logrotate  [-D 数据目录] [-s]
  pg_ctl kill       信号名称 进程号
  pg_ctl register   [-D 数据目录] [-N 服务名称] [-U 用户名] [-P 口令]
                    [-S 启动类型] [-e 源] [-W] [-t 秒数] [-s] [-o 选项]
  pg_ctl unregister [-N 服务名称]

普通选项:
  -D, --pgdata=数据目录  数据库存储区域的位置
  -e SOURCE              当作为一个服务运行时要记录的事件的来源
  -s, --silent           只打印错误信息, 没有其他信息
  -t, --timeout=SECS     当使用-w 选项时需要等待的秒数
  -V, --version          输出版本信息, 然后退出
  -w, --wait             等待直到操作完成(默认)
  -W, --no-wait          不用等待操作完成
  -?, --help             显示此帮助, 然后退出
如果省略了 -D 选项, 将使用 PGDATA 环境变量.

启动或重启的选项:
  -c, --core-files       在这种平台上不可用
  -l, --log=FILENAME     写入 (或追加) 服务器日志到文件FILENAME
  -o, --options=OPTIONS  传递给postgres的命令行选项
                         (PostgreSQL 服务器执行文件)或initdb
  -p PATH-TO-POSTMASTER  正常情况不必要

停止或重启的选项:
  -m, --mode=MODE        可以是 "smart", "fast", 或者 "immediate"

关闭模式有如下几种:
  smart       所有客户端断开连接后退出
  fast        直接退出, 正确的关闭(默认)
  immediate   不完全的关闭退出; 重启后恢复

允许关闭的信号名称:
  ABRT HUP INT KILL QUIT TERM USR1 USR2

注册或注销的选项:
  -N 服务名称     注册到 PostgreSQL 服务器的服务名称
  -P 口令         注册到 PostgreSQL 服务器帐户的口令
  -U 用户名       注册到 PostgreSQL 服务器帐户的用户名
  -S START-TYPE   注册到PostgreSQL服务器的服务启动类型

启动类型有:
  auto       在系统启动时自动启动服务(默认选项)
  demand     按需启动服务

由于报错原因各不一样,解决方法不保证通用。
其它参照解决办法:

  1. 尝试给安装目录及数据库目录提前设置权限
  2. 右键管理员启动安装程序等方法尝试

转载请注明出处:https://blog.csdn.net/hx7013/article/details/124126849

  • 20
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值