web-dev-qa-db-ja.com

postgreSQLエラーinitdb:コマンドが見つかりません

私はlinuxbrewを使用してubuntuにpostgresqlをインストールしていました:

brew install postgresql

それはうまくいくようですが、その後PostgreSQLを初めてインストールしたので、データベースを作成しようとしました:

initdb /usr/local/var/postgres -E utf8

しかし、それは次のように返されました:

initdb: command not found

私はSudo but that doesn't helpedでコマンドを実行しようとしました

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

だから私の場合、私は走りたい

/usr/local/Cellar/postgresql/9.6.1/bin/initdb 

Mlocateがインストールされていない場合は、インストールするか使用します

Sudo find / -name initdb
7
Vao Tsun

私は同じ問題を抱えていて、答えを見つけました here

Ubuntuパスは

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

編集:申し訳ありませんが、アーメドはlinuxbrewについて尋ねた、私はUbuntuについて話している。この答えが誰かに役立つことを願っています。

5
user3787194

SuperUserでの同様の質問 には良い答えがあります。

要するに:

  1. Postgresはデータベースを「クラスター」にグループ化します。各クラスターは、構成とデータの場所を共有し、独自のTCPポートを持つ単一のサーバーインスタンスで実行されるデータベースの名前付きコレクションです。
  2. Postgresの単一インスタンスのみが必要な場合、インストールには「main」という名前のクラスターが含まれるため、initdbを実行してクラスターを作成する必要はありません。
  3. 複数のクラスターが必要な場合、DebianおよびUbuntu用のPostgresパッケージは異なるコマンドを提供します pg_createclusterinitdbの代わりに使用します。後者はPATHに含まれないため、エンドユーザーが直接使用するのを防ぐことができます。

また、データベースクラスターではなくデータベースを作成しようとしている場合は、代わりに createdb コマンドを使用します。

5
David Scarlett