PostgreSQL sous Windows

De OpenESubWiki.

PostgreSQL existe essentiellement sous Linux mais il est possible de l'utilisé sous windows en utilisant Cygwin.

Sommaire

Installation de PostgreSQL

Téléchargement des packages Cygwin

Allez sur le site de Cygwin, cliquez sur :

Cygwin-icon.gif

Install or Update now!

Téléchargez le fichier setup.exe dans un répertoire C:\cygwin_download par exemple . Ensuite, lorsque vous exécutez setup.exe, une fenêtre s'ouvre et vous avez trois possibilités :

Pg1.jpg

En choisissant la deuxième option, vous téléchargerez les packages par exemple dans le répertoire C :\cygwin_download.

Pg2.jpg

Plusieurs fenêtres vont successivement s'ouvrir jusqu'au choix d'un site de téléchargement.

Pg3.jpg


Pg4.jpg

Puis vous arrivez sur une dernière fenêtre où vous allez pouvoir sélectionner les packages. Lorsque vous cliquez sur la ligne d'un package donné, on a le choix entre :

  • le numéro de version, ce qui indique qu'il est sélectionné,
  • source pour télécharger le source,
  • skip (passer) ce qui indique qu'il n'est pas sélectionné;
Pg5.jpg

Pour installer PostgreSQL vous allez prendre les package par défault et ajoutez les packages suivant

  • Database postgresql 7.4-1
  • Interpreters python 2.3.2-1
Pg6.jpg


Pg7.jpg

Installation des packages Cygwin

Vous exécutez à nouveau le fichier setup.exe mais cette fois-ci, vous choisissez d'installer à partir du répertoire local tous les packages précédents.Vous ferez cette installation dans C:\cygwin par exemple.Cliquez sur Default à coté de All pour obtenir Install. Vous obtenez ceci :

Pg8.jpg

Cliquer sur Suivant. Vous aurez ainsi un raccourci sur le bureau ainsi qu'un menu pour accéder au Cygwin Bash Shell.

Configuration de PostgreSQL

Vous ouvrez le Cygwin Bash Shell et vous procèdez de la manière suivante :

Lancez le démon ipc en tapant :

ipc-daemon2 &

Initialisez PostgreSQL en tapant ( uniquement la premiere fois que vous vous connectez a la base) :

initdb -D /usr/share/postgresql/data

Démarrez le serveur en tapant :

postmaster -D /usr/share/postgresql/data -i &

Il est à noter que l'option -i doit être spécifiée pour accepter les connections TCP/IP. A la place de l'option -i, on peut modifier le fichier de configuration postgresql.conf du répertoire data en remplaçant #tcpip_socket=false par tcpip_socket=true. Vous pouvez également démarrer le serveur en tapant :

pg_ctl -D /usr/share/postgresql/data start

Arrêtez le serveur en tapant :

pg_ctl -D /usr/share/postgresql/data stop

Une première utilisation de PostgreSQL

Dans la plupart des SGBD Relationnels, il y a un administrateur du serveur (DBA). Avec PostgreSQL sous Linux, il s'agit de l'utilisateur postgres. Sous ce compte, on peut créer et supprimer des bases de données et des utilisateurs. Avec PostgreSQL sous Windows, il s'agit de celui qui a fait l'installation.

Il existe aussi une notion de propriétaire (DBO) de base de données. Il peut créer et supprimer des tables et gérer les droits des utilisateurs sur cette base de données. Le DBO est bien sûr celui qui a créé la base de données.

Création et suppression d'un utilisateur

Vous pouvez utiliser la commande createuser, éventuellement avec l'option -P qui permet de spécifier le mot de passe de l'utilisateur. Voici un exemple des séquences obtenues :

createuser etudiant
is the new user allowed to create databases ? (y/n) y
shall the new user be allowed to create more new users ? (y/n) n
CREATE USER

Pour supprimer un utilisateur, on utilise la commande dropuser.

Création et suppression d'une base de données

Vous pouvez utiliser la commande createdb, éventuellement avec l'option -U pour préciser le nom du propriétaire et l'option -E pour l'encodage. Exemple :

createdb -E LATIN1 demo
CREATE DATABASE

Pour supprimer une base de données, onutilise la commande dropdb.

Connexion à une base de données

Psql est un interpréteur en ligne de commandes. Par exemple, pour se connecter à la base demo, on tapera psql demo. Il y a deux types de commandes : les requêtes en langage SQL les commandes qui commencent par \ Voici quelques exemples. (On rappelle que l'vous vous etes connecté à demo par psql demo) :

  • \l liste des bases de données du serveur
  • \d liste des tables de la base de données (ici demo)
  • \d nom_table liste des champs de la table nom_table
  • \z liste des droits des utilisateurs sur les tables de la base
  • \g nom_fichier indique que le résultat de la requête suivante sera sauvegardé dans le fichier nom_fichier
  • \i req.sql exécute la ou les requêtes SQL enregistrées dans le fichier req.sql
  • \q pour se déconnecter de la base de données

Installation de de la base openesub

Initialisez PostgreSQL en tapant :

initdb -D /usr/share/postgresql/data

Vous allez creer les utilisateurs postgres et openESub.

createuser postgres
is the new user allowed to create databases ? (y/n) y
shall the new user be allowed to create more new users ? (y/n) y
CREATE USER
createuser openesub
is the new user allowed to create databases ? (y/n) y
shall the new user be allowed to create more new users ? (y/n) y
CREATE USER

Ensuite vous copiez les fichiers situé dans le repertoire /openESub/jeu.postgresql/asynchrone/base du CVS dans le repertoire C:\cygwin\home\(nom utilisateur).

Executez init_base_cygwin.sh puis remplit_base_cygwin.sh ( si vous avez des problèmes essayez ./init_base_cygwin.sh puis ./remplit_base_cygwin.sh )

Tester en tapant :

psql openesub

puis

SELECT * from open_classe_sousmarin_parametres;

Vous obtenez ceci :

Pg9.jpg

Votre base est prête ! ! !

Outils personnels