Installez postgresql. Pourquoi initdb n'est-il pas disponible?

15

Je suis ces instructions , mais je ne peux que passer à l'étape 17.2.

Malgré l'installation réussie de postgresql via le

sudo apt-get install postgresql

commande, lors de l'exécution

initdb -D /usr/local/pgsql/data

Ubuntu me dit que 'initdb' n'est pas installé. Les instructions me disent que cette commande est installée par

sudo apt-get install postgresql

alors que se passe-t-il? Je peux rendre initdb disponible en installant postgres-xc, mais je pense que postgres-xc n'est que des déchets tiers étranges, et ce n'est pas détaillé dans les instructions. Des idées?

Nu comme un ver
la source

Réponses:

14

initdbest destiné à être exécuté sous le compte utilisateur postgres créé lors de l'installation. Après avoir installé postgresql, vous pouvez faire:

sudo su - postgres

Vous devriez alors pouvoir courir initdb.

Brian.D.Myers
la source
4
Citation de /usr/share/doc/postgresql-common/README.Debian.gz:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr
3
Même après être passé à l'utilisateur postgres, j'obtiens toujours cette erreur
Cogwheel
Cela ne fonctionne pas pour moi dans Ubuntu Server 14 en utilisant Postgres 9.6.
sudo
Cela ne fonctionne pas, car initdbc'est dans /usr/lib/postgresql/X.X/bin/.
Li Dong
27

Vous trouverez initdbsous /usr/lib/postgresql/x.y/bin/. Voir aussi /usr/share/doc/postgresql-common/README.Debian.gzpour plus d'informations sur la configuration sur Debian et Ubuntu.

Peter Eisentraut
la source
Cela devrait vraiment être la réponse acceptée. initdbest la commande sous-jacente mais les utilisateurs Debian et Ubuntu devraient utiliser pg_createcluster et sa suite de commandes associée. De plus, vous n'avez normalement pas besoin de initdbOU pg_createclusteraprès apt-get install postgresqlcar l'installation standard crée déjà pour vous un cluster par défaut, avec un serveur et des bases de données par défaut / modèles. Le LISEZMOI que Peter mentionne ci-dessus vaut la peine d'être lu.
cdaddr
2
@cdaddr Non, vous n'en avez généralement pas besoin après l'installation de postgres. Néanmoins, si vous avez besoin de recréer un cluster rapidement et que vous ne voulez pas vous soucier de réinstaller postgres ou si vous devez initialiser une nouvelle base de données dans un emplacement non standard, cela peut être utile. Alors oui, c'est une excellente réponse.
Erathiel
1
Travaux. Et c'est le meilleur parce que de cette façon, je peux être sûr de la version que j'utilise.
sudo
nous recherchons initdb parce que le tutoriel le dit postgresql.org/docs/10/static/creating-cluster.html
nerkn
2

initdbn'est pas installé en tant qu'exécutable utilisateur. Est uniquement installé dans /usr/lib/postgresql/X.X/bin/, car il dépend toujours de la version. initdbne peut être exécuté qu'à partir de ce répertoire spécifique.

Comme mentionné dans d'autres réponses, l'installation de postgres crée un répertoire par défaut qui peut se trouver dans une partition limitée. Les utilisateurs peuvent vouloir changer cela, mais cela nécessite également d'autres étapes. voir ici .

ilias iliadis
la source
-2

suivez les étapes suivantes depuis root 1.passwd postgres votre mot de passe puis 2.su postgres 3.psql 4. créez l'utilisateur de votre nom d'utilisateur comme "CREATE USER SAM;" 5. créer une base de données sam; déconnectez-vous maintenant 6.type psql à votre utilisateur

smn_onrocks
la source
Cette réponse ne répond pas du tout directement à la question.
cdaddr