Dernière mise à jour le 19 avril 2010.
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.
Commencez par aller sur la page principale du projet : http://www.postgresql.org
Cliquez sur le lien « Downloads ». Vous arrivez sur cette page :
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 :
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 :
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 :
Commencez par l'enregistrer sur votre poste. Le téléchargement commence :
Une fois terminée, l'installation va pouvoir commencer.
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++ :
L'installeur se lance :
Cliquez sur « Next ».
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 ».
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 ».
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 ».
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.
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 ».
Le nouvel écran indique que PostgreSQL est prêt à être installé. Cliquez sur « Next ».
L'installation commence :
Et voilà. Installation terminée comme le dit le dernier écran :
Cliquez sur « Finish » pour terminer l'installation.
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++ :
Puis vous obtenez la fenêtre d'accueil standard :
Cliquez sur « Next ».
L'installeur détecte la précédente installation et indique qu'il va procéder à une mise à jour :
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 :
Cliquez sur « Next ».
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 ».
Le nouvel écran indique que PostgreSQL est prêt à être installé. Cliquez sur « Next ».
Et la mise à jour commence :
Une fois l'opération terminée, vous devez avoir cet écran :
Cliquez sur « Finish ». Votre serveur PostgreSQL mis à jour est prêt à être utilisé.
Voici quelques informations supplémentaires sur les spécificités de Windows.
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 :
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 :
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 :
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.
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 :
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 :
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 :
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 :
L'installeur a créé un menu dans le répertoire « Tous les programmes » du menu « Start ».
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 :
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 :
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"
Pour connaître son numéro de version Windows, il faut utiliser l'outil « winver ».