1.3. Création d'une base de données
Le premier test pour voir si vous pouvez accéder au serveur de bases
de données consiste à essayer de créer une base. Un serveur
PostgreSQL™ peut gérer
plusieurs bases de données. Généralement, une base de données
distincte est utilisée pour chaque projet ou pour chaque utilisateur.
Il est possible que votre administrateur ait déjà créé une base pour
vous. Il devrait vous avoir dit quel est le nom de celle-ci. Dans ce
cas, vous pouvez omettre cette étape et aller directement à la
prochaine section.
Pour créer une nouvelle base, nommée ma_base
dans cet exemple, utilisez la commande suivante :
$ createdb ma_base
Cela devrait renvoyer la réponse :
CREATE DATABASE
Si oui, cette étape est réussie et vous pouvez sauter le reste de
cette section.
Si vous voyez un message similaire à :
createdb: command not found
alors PostgreSQL™ n'a pas été
installé correctement. Soit il n'a pas été installé du tout, soit le
chemin n'a pas été configuré correctement. Essayez d'appeler la
commande avec le chemin absolu :
$ /usr/local/pgsql/bin/createdb ma_base
Le chemin sur votre serveur peut être différent. Contactez votre
administrateur ou vérifiez dans les instructions d'installation pour
corriger la situation.
Voici une autre réponse possible :
createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Cela signifie que le serveur n'était pas démarré, ou qu'il n'était
pas démarré où
createdb
l'attendait. Une fois encore, vérifiez les instructions
d'installation ou consultez votre administrateur.
Voici une autre réponse possible :
createdb: could not connect to database postgres: FATAL: role "joe" does not exist
où votre nom de connexion est mentionné. Ceci survient si
l'administrateur n'a pas créé de compte utilisateur PostgreSQL™ pour vous (les comptes
utilisateurs PostgreSQL™ sont
distincts de ceux du système d'exploitation). Si vous êtes
l'administrateur, la lecture du Chapitre 18,
Rôles et droits de la base de données vous expliquera comment
créer de tels comptes. Vous aurez besoin de devenir l'utilisateur du
système d'exploitation sous lequel PostgreSQL™ a été installé (généralement
postgres) pour créer le compte du premier
utilisateur. Cela pourrait aussi signifier que vous avez un nom
d'utilisateur PostgreSQL™ qui
est différent de celui de votre compte utilisateur du système
d'exploitation ; dans ce cas, vous avez besoin d'utiliser l'option
-U ou de configurer la variable
d'environnement PGUSER pour spécifier votre
nom d'utilisateur PostgreSQL™.
Si vous n'avez pas les droits requis pour créer une base, vous verrez
le message suivant :
createdb: database creation failed: ERROR: permission denied to create database
Tous les utilisateurs n'ont pas l'autorisation de créer de nouvelles
bases de données. Si PostgreSQL™ refuse de créer des bases pour
vous, alors l'administrateur a besoin de vous accorder ce droit.
Consultez votre administrateur si cela arrive. Si vous avez installé
vous-même PostgreSQL™, alors
vous devez ouvrir une session sous le compte utilisateur que vous
avez utilisé pour démarrer le serveur. []
Vous pouvez aussi créer des bases de données avec d'autres noms.
PostgreSQL™ vous permet de
créer un nombre quelconque de bases sur un site donné. Le nom des
bases doit avoir comme premier caractère un caractère alphabétique et
est limité à 63 caractères de longueur. Un choix pratique est de
créer une base avec le même nom que votre nom d'utilisateur courant.
Beaucoup d'outils utilisent ce nom comme nom par défaut pour la base
; cela permet de gagner du temps en saisie. Pour créer cette base,
tapez simplement :
$ createdb
Si vous ne voulez plus utiliser votre base, vous pouvez la supprimer.
Par exemple, si vous êtes le propriétaire (créateur) de la base
ma_base, vous pouvez la détruire en
utilisant la commande suivante :
$ dropdb ma_base
(Pour cette commande, le nom de la base n'est pas par défaut le nom
du compte utilisateur. Vous devez toujours en spécifier un.) Cette
action supprime physiquement tous les fichiers associés avec la base
de données et elle ne peut pas être annulée, donc cela doit se faire
avec beaucoup de prévoyance.
Plus d'informations sur
createdb
et
dropdb
peuvent être trouvées
respectivement dans
createdb(1)
et
dropdb(1).