Installer PostgreSQL 8.4 sous Windows

Article écrit par Guillaume Lelarge, le 29 décembre 2009.

Dernière mise à jour le 19 avril 2010.

Quelques informations de base

Tous les tests effectués et toutes les copies d'écran ont été fait sur un Windows XP. Cela devrait fonctionner de la même manière sous les autres versions de Windows. En cas de différence, elles seront clairement explicitées dans le texte.

L'utilisation de PostgreSQL sous Windows peut se révéler très pratique. Par exemple, un développeur peut continuer à travailler sur son projet avec sa base personnelle sur son poste de travail. Cependant, il faut convenir d'un grand nombre d'inconvénients, le premier étant que la version Windows est moins performante que la version Unix. Cela peut ne pas être un problème, surtout si on revient à l'exemple du développeur, mais va très rapidement le devenir une fois en production. De plus, les outils tiers sont souvent développés avec Unix en tête, parfois Windows. Enfin, les documentations sur PostgreSQL sous Windows sont relativement peu nombreuses. Bref, si vous choisissez d'utiliser PostgreSQL avec Windows, attendez-vous à batailler ferme pour trouver des informations sur votre système ou pour trouver de l'aide.

Télécharger l'installeur

Commencez par aller sur la page principale du projet : http://www.postgresql.org

winpg84_40.jpg

Cliquez sur le lien « Downloads ». Vous arrivez sur cette page :

winpg84_41.jpg

Cette page indique tous les téléchargements possibles. Pour Windows, nous sommes intéressés par les exécutables qui se trouvent dans la section « Binary packages ». Cliquez sur le lien « Windows ». Vous arrivez sur cette page :

winpg84_42.jpg

En 8.4, seule la société EnterpriseDB propose des exécutables de PostgreSQL compilés pour Windows : elle fait cela bénévolement pour la communauté. Cliquez sur le lien « Download » de la section « Once click installer ». Vous arrivez sur cette page :

winpg84_43.jpg

Elle contient la liste des versions disponibles. Il est préférable d'installer la dernière version en cours, mais libre à vous d'utiliser une autre version. Nous allons installer la version 8.4.1. Cliquez sur le lien « Windows ».

Votre navigateur devrait rapidement vous proposer d'enregistrer ou d'ouvrir ce fichier avec un dialogue de ce type :

winpg84_44.jpg

Commencez par l'enregistrer sur votre poste. Le téléchargement commence :

winpg84_45.jpg

Une fois terminée, l'installation va pouvoir commencer.

Installer PostgreSQL

Double cliquez sur le fichier « postgresql-8.4.1-1-windows.exe ».

L'installeur commence par mettre à jour les bibliothèques redistribuables de Visual C++ :

winpg84_02.jpg

L'installeur se lance :

winpg84_03.jpg

Cliquez sur « Next ».

winpg84_04.jpg

L'installeur vous demande de sélectionner le répertoire où PostgreSQL sera installé. Le répertoire par défaut est généralement bon mais vous pouvez le modifier si vous le souhaitez. Une fois ceci fait, cliquez sur « Next ».

winpg84_05.jpg

L'installeur vous demande ensuite de sélectionner le répertoire des données de PostgreSQL. Là-aussi, le répertoire par défaut est généralement bon mais vous pouvez le modifier si vous le souhaitez. Une fois ceci fait, cliquez sur « Next ».

winpg84_06.jpg

Ce nouvel écran va permettre la saisie du mot de passe de l'utilisateur de bases de données postgres et de l'utilisateur du service. Saisissez le mot de passe de l'utilisateur Windows postgres. Saisissez-le une deuxième fois pour confirmer votre première saisie.

Cliquez sur « Next ».

winpg84_08.jpg

L'installeur vous demande le numéro du port d'écoute du serveur PostgreSQL. La valeur par défaut est généralement suffisante. Cliquez sur « Next » pour continuer.

winpg84_09.jpg

L'installeur vous propose de sélectionner la locale et d'indiquer si vous voulez que l'installeur se charge d'activer le langage PL/pgsql dans la base de données modèle template1. Modifiez si vous souhaitez, puis cliquez sur sur « Next ».

winpg84_10.jpg

Le nouvel écran indique que PostgreSQL est prêt à être installé. Cliquez sur « Next ».

L'installation commence :

  • copie des exécutables, des bibliothèques et des autres fichiers

winpg84_11.jpg

  • initialisation du groupe de bases de données (autrement dit, exécution du programme « initdb »)

winpg84_12.jpg

  • démarrage du nouveau service

winpg84_14.jpg

  • chargement des modules SQL supplémentaires

winpg84_16.jpg

  • préparation du désinstalleur

winpg84_17.jpg

Et voilà. Installation terminée comme le dit le dernier écran :

winpg84_18.jpg

Cliquez sur « Finish » pour terminer l'installation.

Mettre à jour PostgreSQL

Si vous voulez mettre à jour votre version de PostgreSQL, disons la 8.4.2, il faut commencer par la télécharger sur le site. Voir plus haut pour les détails.

Avant de lancer l'installeur, vérifiez bien que les outils client PostgreSQL, comme psql ou pg_dump ne sont pas exécutés. Si c'est le cas, terminez leur exécution (par exemple en les tuant avec le gestionnaire de processus). Un outil client PostgreSQL en cours d'exécution peut empêcher la mise à jour de son exécutable ou des DLL auxquels il est lié. Attention, ne faites pas ça pour les processus de l'exécutable postgres.exe.

Double cliquez sur l'installeur nommé « postgresql-8.4.2-1-windows.exe ». L'installeur commence par mettre à jour les bibliothèques redistribuables de Visual C++ :

winpg84_28.jpg

Puis vous obtenez la fenêtre d'accueil standard :

winpg84_29.jpg

Cliquez sur « Next ».

L'installeur détecte la précédente installation et indique qu'il va procéder à une mise à jour :

winpg84_30.jpg

Cliquez sur « Next ».

L'installeur détecte aussi l'ancien répertoire des données et indique qu'il va utiliser ce répertoire pour cette installation :

winpg84_31.jpg

Cliquez sur « Next ».

winpg84_32.jpg

Ce nouvel écran va permettre la saisie du mot de passe de l'utilisateur de bases de données postgres et de l'utilisateur du service. Saisissez le mot de passe de l'utilisateur Windows postgres. Saisissez-le une deuxième fois pour confirmer votre première saisie.

Cliquez sur « Next ».

winpg84_33.jpg

Le nouvel écran indique que PostgreSQL est prêt à être installé. Cliquez sur « Next ».

Et la mise à jour commence :

winpg84_34.jpg

Une fois l'opération terminée, vous devez avoir cet écran :

winpg84_39.jpg

Cliquez sur « Finish ». Votre serveur PostgreSQL mis à jour est prêt à être utilisé.

Informations internes

Voici quelques informations supplémentaires sur les spécificités de Windows.

Utilisateur Windows postgres

L'installeur va créer un utilisateur standard (c'est-à-dire qu'il ne fait pas partie du groupe administrateurs). Il n'est pas possible de changer son nom pendant l'installation. Ce sera donc toujours « postgres ». Vous indiquez son mot de passe pendant l'installation lors de cette étape :

winpg84_06.jpg

Après l'installation, vous le verrez dans l'outil de « Gestion de l'ordinateur ». Pour exécuter ce logiciel, cliquez avec le bouton droit de la souris sur l'icône du « Poste de travail », puis choisissez l'élément « Gérer… ». Vous devriez voir une fenêtre comme celle-ci :

winpg84_19.jpg

La partie gauche permet de naviguer entre les différents nœuds d'informations, et la partie droite fournit les informations. Allez dans « Gestion de l'ordinateur / Outils système / Utilisateurs et groupes locaux / Utilisateurs ». La partie droite devrait afficher tous les utilisateurs, dont l'utilisateur postgres. Voici le contenu des propriétés de cet utilisateur :

winpg84_20.jpg winpg84_21.jpg

Comme vous pouvez le constater, cet utilisateur ne fait partie d'aucun groupe, et surtout pas du groupe Administrateurs. Par contre, il a tous les droits sur le répertoire des données de PostgreSQL. Pour cela, allez dans le répertoire « C:\Program Files\PostgreSQL\8.4 » (si vous n'avez pas changé le répertoire d'installation), faites un clic droit sur le répertoire « data » et sélectionnez l'élément « Propriétés » du menu contextuel.

Service postgresql-8.4

L'installeur crée un service Windows appelé par défaut « postgresql-8.4 ». Ce service permet de démarrer et d'arrêter le serveur PostgreSQL.

Vous pouvez accéder aux services dans l'outil de « Gestion de l'ordinateur ». Pour exécuter ce logiciel, cliquez avec le bouton droit de la souris sur l'icône du « Poste de travail », puis choisissez l'élément « Gérer… ». La partie gauche permet de naviguer entre les différents nœuds d'informations, et la partie droite fournit les informations. Allez dans Gestion de l'ordinateur / Services et applications / Services. La partie droite devrait afficher tous les services, dont celui du serveur PostgreSQL :

winpg84_22.jpg

La colonne « État » permet de savoir si le serveur est en cours d'exécution (« Démarré ») ou arrêté (dans ce cas, la cellule est vide). En faisant un clic droit, un menu contextuel permet d'exécuter une action ou de modifier les propriétés. Voici les propriétés du service :

winpg84_23.jpg

Le champ « Chemin d'accès des fichiers exécutables » contient la ligne de commande pour lancer une action. Le service utilise l'outil « pg_ctl » pour gérer le serveur. L'option -N permet d'indiquer le nom abrégé du service, et l'option -D l'emplacement du répertoire des données.

L'option « Connexion » montre bien que le service utilise l'utilisateur postgres pour démarrer, arrêter le serveur PostgreSQL :

winpg84_24.jpg

N'oubliez pas que vous pouvez aussi utiliser l'outil en ligne de commande « net.exe » pour gérer les services.

Il existe aussi un autre outil, « sc.exe » (Service Controller). Il prend en arguments une action et le nom du service. Voici quelques exemples d'action :

  • start : pour lancer le service ;
  • stop : pour stopper le service ;
  • query : pour obtenir un statut sur le service.

L'installeur a créé un menu dans le répertoire « Tous les programmes » du menu « Start ».

winpg84_25.jpg

Ce menu s'appelle « PostgreSQL 8.4 ». Il contient un accès rapide à certains outils comme psql ou pgAdmin (version 1.10.1). Il contient aussi les commandes suivantes :

  • « Start Server » : démarrage du serveur;
  • « Stop Server » : arrêt du serveur;
  • « Reload Configuration » : rechargement de la configuration par le serveur.

Options de l'installeur

Il est tout à fait possible de donner des informations à l'installeur via la ligne de commande. Voici quelques-unes des options les plus intéressantes :

  • « –debuglevel <debuglevel> » : niveau de verbosité pour le débogage. Par défaut à 2, il peut monter jusqu'à 4.
  • « –debugtrace <debugtrace> » : nom du fichier de traces
  • « –superaccount <superaccount> » : nom du superutilisateur de la base de données (postgres par défaut).
  • « –servicename <servicename> » : nom du service.
  • « –serviceaccount <serviceaccount> » : nom de l'utilisateur système (postgres par défaut).
  • « –superpassword <superpassword> » : mot de passe.
  • « –serverport <serverport> » : numéro de port.

Script VBS de suppression d'une installation

Voici un script très simple permettant de supprimer toute l'installation de PostgreSQL sur un serveur Windows, à utiliser principalement si la précédente installation n'a pas fonctionné :

REM Suppression du répertoire d'installation et de ses sous-répertoires
rd /s /q "C:\Program Files\PostgreSQL\8.4"  

REM Suppression du service postgresql-8.4
sc delete postgresql-8.4  

REM Suppression du compte utilisateur 'postgres'
net user postgres /delete  

del "%TEMP%\install-postgresql.log"
del "%TEMP%\bitrock*.log"

Autres trucs et astuces Windows

Pour connaître son numéro de version Windows, il faut utiliser l'outil « winver ».

Afficher le texte source