initdb

Name

initdb -- crée un nouveau cluster de base PostgreSQL

Synopsis

initdb --pgdata | -D directory [--username | -U username] [--pwprompt | -W] [--encoding | -E encoding] [-L directory] [--noclean | -n] [--debug | -d]

Description

initdb crée un nouveau cluster de base PostgreSQL (ou système de base) Un cluster de base est un ensemble de bases gérées par un serveur unique.

Créer un système consiste en la création de répertoires dans lesquels se trouvent les données, générant les tables catalogues partagées (tables qui n'appartiennent à aucune base particulière), et créant la base template1 Quand vous créez une nouvelle base, tout ce qui est dans template1 est copié. Elle contient les tables catalogues pour certaines choses comme les types natifs.

initdb doit être lancé par l'utilisateur qui sera le propriétaire du pressus serveur, car le serveur nécessite d'avoir accès aux fichiers et répertoires qu'initdb crée. De même que le serveur peut ne pas être lancé en root, vous ne devez pas lancer initdb en root. (En fait ce serait refusé).

Bien que initdb tentera de créer le répertoire de données spécifié, souvent il n'aura pas les droits pour le faire, car le répertoire parent désiré est souvent un répertoire avec les droits de root. Pour faire un arrangement comme ça, créez un répertoire vide en root, ensuite utilisez chown pour changer les propriétés en compte utilisateur de la base, ensuite su pour devenir l'utilisateur de la base, et finalement lancez initdb comme utilisateur de la base.

Options

--pgdata=directory, -D directory

Cette option spécifie le répertoire dans lequel les données seront stockées. C'est la seule information requise par initdb, mais vous pouvez éviter de l'écrire en plaçant la variable d'environnement PGDATA, qui peut être commode car le serveur (postmaster) peut trouver le répertoire de la base plus tard par la même variable.

--username=username, -U username

Sélectionne le nom utilisateur du superutilisateur. Par défaut c'est le nom de l'utilisateur ayant lancé initdb. Il n'est pas réellement important que le nom du superutilisateur soit placé, mais il peut être choisi de garder le nom "postgres", même si le nom du système d'exploitation de l'utilisateur est différent.

--pwprompt, -W

Fait que initdb demande le mot-de-passe du superutilisateur de la base. Si vous ne prévoyez pas d'utiliser l'authentification par mot-de-passe, ce n'est pas important. Sinon vous ne pourrez pas utiliser l'authentification par mot-de-passe jusqu'à ce que vous ayez un mot-de-passe.

--encoding=encoding, -E encoding

Sélectionne l'encodage du gabarit de la base. C'est également l'encodage par défaut des bases créées plus tard, sauf si vous le modifiez. Pour utiliser les fonctionnalités d'encodage, vous devez les avoir activées lors de la compilation au moment de sélectionner cette option.

Sinon, moins communément utilisés, d'autres paramètres sont aussi disponibles :

-L directory

Spécifie où initdb trouvera ses fichiers d'entrée pour initialiser le système. Ce n'est pas nécessaire normalement. Il vous sera indiqué si vous avez besoin de spécifier la localisation.

--noclean, -n

Par défaut, quand initdb détermine qu'une erreur empêche de créer complètement le système, il supprime les fichiers qui peuvent avoir été créés avant de découvrir qu'il ne peut finir sa tâche. Cette option est pratique pour le débugage.

--debug, -d

Affiche les sorties de débugage depuis l'amorce du serveur et quelques autres messages de moindre importance. L'amorce serveur est le programme que initdb utilise pour créer les tables catalogue. Cette option génère un volume considérable de commentaires ennuyeux.

Environnement

PGDATA

Spécifie le répertoire où le système est stocké; peut être modifié en utilisant l'option -D.

Voir aussi

postgres(1), postmaster(1), Guide de l'administrateur PostgreSQL.