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 votre utilisation. 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, dans cet exemple nommée mabase, utilisez la commande suivante :

$ createdb mabase

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 mabase

Le chemin sur votre site peut être différent. Contactez votre administrateur ou vérifiez en arrière dans les instructions d'installation pour corriger la situation.

Une autre réponse peut être :

createdb: could not connect to database template1: 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.

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 le droit pour cela. Consultez votre administrateur si cela arrive. Si vous avez installé vous-même PostgreSQL, alors vous devriez ouvrir une session sous le compte utilisateur que vous avez utilisé pour démarrer le serveur. [1]

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 mabase, vous pouvez la détruire en utilisant la commande suivante :

$ dropdb mabase

(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 être fait avec beaucoup de prévoyance.

Plus d'informations sur createdb et dropdb peuvent être trouvées respectivement dans createdb et dropdb.

Notes

[1]

Quelques explications : les noms d'utilisateurs de PostgreSQL sont différents des comptes utilisateurs du système d'exploitation. Quand vous vous connectez à une base de données, vous pouvez choisir le nom d'utilisateur PostgreSQL que vous utiliserez ; si vous ne spécifiez rien, cela sera par défaut le même nom que votre compte système courant. Ce qui se passe, c'est qu'il y toujours un compte utilisateur PostgreSQL qui aura le même nom que l'utilisateur du système d'exploitation qui a démarré le serveur, et cet utilisateur aura toujours le droit de créer des bases. Au lieu de vous connecter en tant que cet utilisateur, vous pouvez spécifier partout l'option -U pour selectionner un nom d'utilisateur PostgreSQL sous lequel vous connecter.