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. 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
Si cette commande ne fournit aucune réponse, 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 système n'a pas été configuré pour l'inclure. 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 commande.
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é là où createdb
l'attendait. Une fois encore,
vérifiez les instructions d'installation ou consultez votre administrateur.
Voici encore une autre réponse possible :
createdb: could not connect to database postgres: FATAL: role "joe" does not exist
mais avec votre propre nom de connexion mentionné à la place de joe. 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 21 vous expliquera comment créer de tels comptes. Vous
aurez besoin de prendre l'identité de 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 il faut que l'administrateur vous accorde ce droit. Consultez votre administrateur si cela arrive. Si vous avez installé vous-même l'instance PostgreSQL, alors vous devez 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 octets 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 prudence.
createdb et dropdb apportent
beaucoup plus d'informations sur createdb
et
dropdb
.
[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 utilisez. Si vous ne
spécifiez rien, cela sera par défaut le même nom que votre compte système
courant. En fait, il existe toujours un compte utilisateur
PostgreSQL qui a le même nom que l'utilisateur
du système d'exploitation qui a démarré le serveur, et cet utilisateur a
toujours le droit de créer des bases. Au lieu de vous connecter au
système en tant que cet utilisateur, vous pouvez spécifier partout
l'option -U
pour sélectionner un nom d'utilisateur
PostgreSQL sous lequel vous connecter.