postgreSQL错误initdb:找不到命令

Ahm*_*que 7 database postgresql ubuntu

我正在使用linuxbrew在ubuntu上安装postgresql:

brew install postgresql
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,但之后因为我第一次安装PostgreSQL我尝试创建一个数据库:

initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)

但它返回为:

initdb: command not found
Run Code Online (Sandbox Code Playgroud)

我试着运行命令 sudo but that doesn't helped

Vao*_*sun 7

运行locate initdb它应该给你选择的列表.像:

MacBook-Air:~ vao$ locate initdb
/usr/local/Cellar/postgresql/9.5.3/bin/initdb
/usr/local/Cellar/postgresql/9.5.3/share/doc/postgresql/html/app-initdb.html
/usr/local/Cellar/postgresql/9.5.3/share/man/man1/initdb.1
/usr/local/Cellar/postgresql/9.6.1/bin/initdb
/usr/local/Cellar/postgresql/9.6.1/share/doc/postgresql/html/app-initdb.html
/usr/local/Cellar/postgresql/9.6.1/share/man/man1/initdb.1
/usr/local/bin/initdb
/usr/local/share/man/man1/initdb.1
Run Code Online (Sandbox Code Playgroud)

所以在我的情况下我想跑

/usr/local/Cellar/postgresql/9.6.1/bin/initdb 
Run Code Online (Sandbox Code Playgroud)

如果您没有安装mlocate,请安装或使用

sudo find / -name initdb
Run Code Online (Sandbox Code Playgroud)


Dav*_*ett 5

在SuperUser上,类似问题的答案很好。

简而言之:

  1. Postgres将数据库分组为“集群”,每个集群都是共享配置和数据位置并在具有其自己的TCP端口的单个服务器实例上运行的命名数据库集合。
  2. 如果只需要一个Postgres实例,则安装中将包含一个名为“ main”的群集,因此您无需运行initdb即可创建一个。
  3. 如果确实需要多个集群,那么Debian和Ubuntu的Postgres软件包将提供一个不同的命令pg_createcluster来代替initdb,而后者不包含在内,PATH以阻止最终用户直接使用它。

而且,如果您只是尝试创建数据库而不是数据库集群,请使用createdb命令。


use*_*194 5

我有同样的问题,在这里找到了答案。

Ubuntu路径是

/usr/lib/postgresql/9.6/bin/initdb

编辑:抱歉,艾哈迈德问有关linuxbrew的问题,我说的是Ubuntu。我希望这个答案可以帮助到别人。