postgresql-10:pg_ctl需要程序“ initdb”,但在与“ pg_ctl”相同的目录中找不到该程序。

时间:2018-07-06 17:54:56

标签: centos7 postgresql-10

我是这个论坛的新手,我正面临这个问题,在这里我遇到以下错误。

sudo -u shahid ./pg_ctl -D /root/pgsql10x/data/ initdb
invalid binary "/root/pgsql10x/bin/pg_ctl"
invalid binary "/root/pgsql10x/bin/pg_ctl"
invalid binary "/root/pgsql10x/bin/pg_ctl"

The program "initdb" is needed by pg_ctl but was not found in the same directory as "pg_ctl".

Check your installation.

我试图从根目录运行它。

我是从源头构建的。我正在CentOS7上尝试版本10。 我直接从postgres网站下载了。

以非root用户身份运行时,我没有遇到这个问题。

我在bin目录中拥有所有文件,如此处的图像所示:

bin directory files

2 个答案:

答案 0 :(得分:0)

最后,我能够解决问题。

问题是由于生成的源文件直接放置在“ / root /”目录中, / root / pgsql10x /以root登录。

当我将它放在/ app / pgsql10x /上的“ / app /”目录中时,事情开始正常运行,创建数据库并且数据库正常运行(在root登录中)。

-Shahid

答案 1 :(得分:0)

该错误来自以下事实:您尝试以root用户身份启动集群,您必须切换到postgres,然后尝试重新启动集群

su - postgres
pg_ctl start