Pour moi ça marche trés bien, un peu compliqué, mais efficace et stable pour l'instant
Cygwin PostgreSQL
PostgreSQL existe essentiellement sous Linux. Un portage a été réalisé sous Windows. Il s’agit de Cygwin PostgreSQL. Le fonctionnement est à peu près identique dans les deux environnements.
1.1 Installation de PostgreSQL
1.1.1 Téléchargement des packages Cygwin
Sur le site de Cygwin à l’adresse
http://www.cygwin.com, en cliquant sur l’image Install Cygwin now, on télécharge le fichier setup.exe dans un répertoire C:\cygwin_download. Ensuite, lorsque l’on exécute ce setup.exe, une fenêtre s’ouvre et on a trois possibilités :
Install from Internet,
Download from Internet,
Install from Local Directory ;
En choisissant la deuxième option, on téléchargera les packages par exemple dans le répertoire C:\cygwin_download. Plusieurs fenêtres vont successivement s’ouvrir jusqu’au choix d’un site de téléchargement. Puis on arrive sur une dernière fenêtre où l’on va pouvoir sélectionner les packages. Lorsque l’on clique 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é ;
Si l’on avait déjà téléchargé des packages, pour ceux-ci, on aurait eu :
keep (garder) ce qui indique qu’on le garde,
retrieve (rapporter) ce qui indique qu’on le supprime,
source pour télécharger le source ;
Voici la liste des packages à télécharger :
ash bash bzip2
crypt cygrunsrv cygwin
fileutils grep less
libncurses6 ncurses libintl1
pcre postgresql readline
sed sh-utils tar
textutils
1.1.2 Installation des packages Cygwin
On exécute à nouveau le fichier setup.exe mais cette fois-ci, on choisit d’installer à partir du répertoire local tous les packages précédents. On fera cette installation dans C:\cygwin . On aura ainsi un raccourci sur le bureau ainsi qu’un menu pour accéder au Cygwin Bash Shell.
1.1.3 Téléchargement et installation de cygipc
On va à l’adresse suivante :
http://www.neuro.gatech.edu/users/cwilson/...gipc/index.html
La, on télécharge un fichier appelé cygipc, actuellement cygipc-1.11-1.tar.bz2 . On le place dans le répertoire C:\cygwin . On ouvre ensuite le Cygwin Bash Shell et on se place dans le répertoire racine de C:\cygwin en tapant deux fois de suite cd ... On le décompresse par la commande bunzip2 cygipc-1.11-1.tar.bz2. On obtient alors un fichier d’archives que l’on désarchive par tar -xvf cygipc-1.11-1.tar
1.2 Configuration de PostgreSQL
On ouvre le Cygwin Bash Shell et on procède de la manière suivante :
On lance le démon ipc en tapant ipc-daemon &
On initialise PostgreSQL en tapant :
initdb -D /usr/share/postgresql/data
On démarre 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. On peut également démarrer le serveur en tapant :
pg_ctl -D /usr/share/postgresql/data start
On arrête le serveur en tapant :
pg_ctl -D /usr/share/postgresql/data stop
1.3 Installation de PostgreSQL comme services NT
Sous Windows NT, 2000 ou XP, on peut installer le serveur PostgreSQL comme service. En se connectant comme administrateur, il faut effectuer les tâches suivantes :
Ajouter à la variable d’environnement système PATH le répertoire C:\cygwin\bin. Ceci est indispensable pour trouver la dll cygwin1.dll
Installer le démon ipc-daemon comme service en tapant :
ipc-daemon –-install-as-service
Créer un utilisateur postgres à l’aide du panneau de configuration ou en tapant :
cmd /c lusrmgr.msc
Puis définir le mot de passe :
mkpasswd -l -u postgres >>/etc/passwd
Donner à postgres le droit d’ouvrir une session en tant que service à l’aide du panneau de configuration ou en tapant :
cmd /c secpol.msc
Rendre postgres propriétaire du répertoire data :
chown postgres /usr/share/postgresql/data
Installer le postmaster comme service :
cygrunsrv –-install postmaster –-path /usr/bin/postmaster
–-args "-D /usr/share/postgresql/data -i" –-dep ipc-daemon
–-termsig INT –-user postgres –-shutdown
Démarrer le service ipc-daemon :
net start ipc-daemon
Démarrer le service postmaster :
net start postmaster
1.4 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.
1.4.1 Création et suppression d’un utilisateur
On peut 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
1.4.2 Création et suppression d’une base de données
On peut 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
1.4.3 Connexion à une base de données
On utilise psql qui 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’on s’est 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
1.4.4 Sauvegarde et restauration d’une base de données
Pour sauvegarder une base de données dans un fichier d’archives (.tar) :
pg_dump -Ft nom_base > fichier.tar
Pour restaurer une base de données à partir de l’archive :
pg_restore -d nom_base fichier.tar
Remarque : si nom_base a été supprimée, il faut d’abord la créer avant de la restaurer.
1.4.5 Gestion des droits des utilisateurs
Pour gérer les droits des utilisateurs sur une base de données, on se connecte à celle-ci puis on utilise la commande SQL GRANT sur SELECT, INSERT, UPDATE, DELETE. Supposons que l’on ait par exemple une table invites et un utilisateur etudiant. On pourrait avoir :
GRANT SELECT ON invites TO etudiant ;
Pour supprimer des droits, on utilise REVOKE.
Remarque : pour gérer les droits, on a intérêt à créer des groupes (CREATE GROUP) puis y ajouter des utilisateurs. De cette manière, on accordera les droits au groupe, ce qui simplifie le travail.
1.5 pgAdmin II
pgAdmin II est un outil particulièrement bien fait qui permet d’administrer PostgreSQL, de créer des bases, des tables, d’interroger, etc ... On peut même installer un plugin nommé pgmigration pour importer des bases Access et SQL Server par exemple. Cet outil se trouve à l’adresse suivante :
http://pgadmin.postgresql.org
Il contient également la documentation sur PostgreSQL.
1.6 Jdbc
Il existe bien sûr un driver jdbc. C’est un driver de type 4, compatible JDBC2.0. On le trouve à l’adresse :
http://jdbc.postgresql.org
1.7 Conclusion
C’est un excellent produit. La documentation est très bien faite. Il mérite vraiment de s’y attarder.