initdb

Nom

initdb -- crée un nouveau groupe de bases de données PostgreSQL

Synopsis

initdb [option...] --pgdata | -D répertoire

Description

initdb crée un nouveau groupe de bases de données PostgreSQL. Un groupe de bases de données est une collection de bases de données gérée par une seule instance du serveur.

Créer un groupe de bases de données consiste en la création des répertoires dans lesquels seront stockées les données de la base de données, en la génération des tables partagées du catalogue (tables appartenant à tout le groupe plutôt qu'à une base de données particulière) et en la création de la base de données template1. Lorsque vous créerez plus tard une nouvelle base de données, tout ce qui se trouve dans la base de données template1 est copié. Elle contient les tables catalogues remplies avec certains éléments comme les types internes.

initdb initialise la locale et le codage de l'ensemble de caractères par défaut du groupe de bases de données. Quelques catégories de locales sont fixées pour la durée de vie du groupe, donc il est important de faire le bon choix au lancement d'initdb. Les autres catégories de locales peuvent être modifiées plus tard quand le serveur est lancé. initdb écrira ces paramétrages de locale dans le fichier de configuration postgresql.conf de façon à ce qu'elles soient la valeur par défaut, mais elles peuvent être modifiées en éditant ce fichier. Pour initialiser la locale que initdb utilise, voir la description de l'option --locale. Le codage de l'ensemble de caractères peut être initialisée séparément pour chaque base de données à sa création. initdb détermine le codage de la base de données template1, qui servira de défaut pour les autres bases de données. Pour modifier le codage par défaut, utilisez l'option --encoding.

initdb doit être exécuté en tant que l'utilisateur possédant le processus serveur parce que le serveur a besoin d'avoir accès aux fichiers et répertoires qu'initdb crée. Comme le serveur ne peut pas être exécuté en tant que root, vous ne devez pas non plus lancer initdb en tant que root. (En fait, il refusera de le faire.)

Bien qu'initdb tentera de créer le répertoire de données spécifié, souvent il n'aura pas les droits de le faire car le père du répertoire de données désiré est souvent un répertoire appartenant à root. Pour contourner ce problème, créer un répertoire de données vide en tant que root, puis utilisez chown pour donner la propriété de ce répertoire au compte utilisateur de la base de données. Enfin, lancez su pour devenir cet utilisateur et lancez initdb en tant que cet utilisateur.

Options

-D répertoire
--pgdata=répertoire

Cette option spécifie le répertoire où le groupe de données devrait être stocké. Ceci est la seule information requise par initdb mais vous pouvez éviter de l'écrire en configurant la variable d'environnement PGDATA, proposition plus intéressante car le serveur de la base de données (postmaster) peut ensuite trouver le répertoire par cette même variable.

-E codage
--encoding=codage

Sélectionne le codage de la base de données template. Ceci sera aussi considéré comme le codage par défaut de toutes les bases de données créées ultérieurement sauf si vous le surchargez. La valeur par défaut est SQL_ASCII.

--locale=locale

Configure la locale par défaut pour le groupe de bases de données. Si cette option n'est pas spécifiée, la locale est héritée de l'environnement d'exécution d'initdb.

--lc-collate=locale
--lc-ctype=locale
--lc-messages=locale
--lc-monetary=locale
--lc-numeric=locale
--lc-time=locale

Comme --locale, mais configure uniquement la locale dans la catégorie spécifiée.

-U nomutilisateur
--username=nomutilisateur

Sélectionne le nom de l'utilisateur qui sera le superutilisateur de la base de données. Il a par défaut le nom de l'utilisateur lançant initdb. Le nom du superutilisateur n'est pas vraiment important mais vous pourriez souhaiter conserver le nom personnalisé de postgres même si le nom de l'utilisateur du système est différent.

-W
--pwprompt

Réclame que initdb demande un mot de passe à donner au superutilisateur de la base de données. Si vous ne pensez pas utiliser d'authentification par mot de passe, ceci n'est pas important. Sinon, vous ne serez pas capable d'utiliser l'authentification par mot de passe jusqu'à avoir configuré un mot de passe.

D'autres paramètres, moins utilisés, sont disponibles :

-d
--debug

Affiche les informations de débogage du lancement du serveur et de quelques autres messages de moindre intérêt pour le plublic général. Le serveur de lancement est le programme qu'initdb lance pour créer les tables catalogues. Cette option génère une quantité horrible d'affichage extrêmement ennuyant.

-L répertoire

Spécifie où initdb devrait trouver les fichiers d'entrée pour initialiser le groupe de données. Ceci n'est normalement pas nécessaire. Vous serez prévenu si vous avez besoin de spécifier leur emplacement de façon explicite.

-n
--noclean

Par défaut, quand initdb détermine qu'une erreur l'empêche de créer complètement le groupe de bases de données, il supprime tout fichier qu'il pourrait avoir créé avant de se rendre compte qu'il ne peut pas finir son travail. Cette option désactive le nettoyage et est donc utile pour le débogage.

Environnement

PGDATA

Spécifie le répertoire où le groupe de bases de données doit être stocké ; pourrait être surchargé en utilisant l'option -D.

Voir aussi

postgres, postmaster