在安装postgresql的过程中会遇到如下异常提示:

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

然后,安装程序会自动进行uninstall,引起安装失败的主要原因是data目录权限的问题。也就是在我们安装的时候,选择了根目录之后的另外一个/data的目录。

本文针对Mac环境下安装失败的解决方案分享给大家,虽然出现相同的问题,但由于Mac系统版本和postgresql版本不同,可能某些方法是无效的。

方法一:自动创建用户

第一步:如果发现安装失败,无法启动postgresql,那么将原有的安装程序卸载,并在Mac的“偏好设置”中将安装时创建的postgre用户删除。

第二步:打开一个命令行窗口,分别执行以下命令:

sudo dscl . -create /Users/postgres UserShell /bin/sh

sudo dscl . -create /Users/postgres NFSHomeDirectory /Library/PostgreSQL

此命令创建一个默认的普通用户,并对指定的目录进行授权。

第三步:重新安装postgresql的安装程序。

一般情况下经过上述步骤,即可解安装时出现的上述问题。

方法二:手动授权

通过命令窗口进入程序的安装界面依次尝试如下操作:

cd /Library/PostgreSQL/9.0
mkdir data
chmod 700 data
chown postgres data
su postgres
## 执行完成之后,可尝试启动服务
./bin/initdb /Library/PostgreSQL/9.0/data

./bin/postgres -D /Library/PostgreSQL/9.0/data
## 或者
./bin/pg_ctl start -D /Library/PostgreSQL/9.0/data/

## 打开一个新的命令行窗口尝试执行链接
/Library/PostgreSQL/9.0/bin/psql -U postgres

其他

如果上述方法依旧未解决你的问题,那么可以尝试查看日志来进行问题的定位和搜索解决。

进入/tmp/目录,在该目录下有安装postgresql时产生的日志,后缀为.log的文件。打开文件,查看是否有相关的异常信息。比如:

Executing /Library/PostgreSQL/9.2/installer/server/initcluster.sh “postgres” “postgres” “****” “/Library/PostgreSQL/9.2” “/Library/PostgreSQL/9.2/data” 5432 DEFAULT

Script exit code: 1

Script output:

 Failed to initialise the database cluster with initdb

Script stderr:

 su: /dev/null: Permission denied

根据类似的异常信息,可进行进一步定位。

如果经过以上步骤依旧无法正常安装,可尝试使用其他版本的postgresql进行安装。



Mac下postgresql安装失败The database cluster initialisation failed.插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2020/06/03/mac-postgresql-the-database-cluster-initialisation-failed/