web-dev-qa-db-fra.com

erreur postgreSQL initdb: commande introuvable

j'installais postgresql sur ubuntu en utilisant linuxbrew:

brew install postgresql

cela semble bien fonctionner mais après cela parce que j'installais PostgreSQL pour la première fois, j'ai essayé de créer une base de données:

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

mais il est revenu comme:

initdb: command not found

j'ai essayé d'exécuter la commande avec Sudo but that doesn't helped

7

exécutez locate initdb il devrait vous donner la liste à choisir. quelque chose comme:

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

Donc dans mon cas, je veux courir

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

Si vous n'avez pas installé mlocate, installez-le ou utilisez

Sudo find / -name initdb
7
Vao Tsun

J'ai eu le même problème et j'ai trouvé la réponse ici .

Le chemin Ubuntu est

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

Edit: Désolé, Ahmed a posé des questions sur linuxbrew, je parle d'Ubuntu. J'espère que cette réponse aide quelqu'un.

5
user3787194

Il y a une bonne réponse à ne question similaire sur SuperUser .

En bref:

  1. Postgres regroupe les bases de données en "clusters", chacun étant une collection nommée de bases de données partageant une configuration et un emplacement de données, et s'exécutant sur une seule instance de serveur avec son propre port TCP TCP.
  2. Si vous ne voulez qu'une seule instance de Postgres, l'installation inclut un cluster nommé "main", vous n'avez donc pas besoin d'exécuter initdb pour en créer un.
  3. Si vous avez besoin de plusieurs clusters, les packages Postgres pour Debian et Ubuntu fournissent une commande différente pg_createcluster à utiliser à la place de initdb, ce dernier n'étant pas inclus dans PATH afin de décourager les utilisateurs finaux de l'utiliser directement.

Et si vous essayez simplement de créer une base de données, pas un cluster de base de données, utilisez plutôt la commande createdb .

5
David Scarlett