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 sagit 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 à ladresse http://www.cygwin.com, en cliquant sur limage Install Cygwin now, on télécharge le fichier setup.exe dans un répertoire C:\cygwin_download. Ensuite, lorsque lon exécute ce setup.exe, une fenêtre souvre 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 souvrir jusquau choix dun site de téléchargement. Puis on arrive sur une dernière fenêtre où lon va pouvoir sélectionner les packages. Lorsque lon clique sur la ligne dun package donné, on a le choix entre :
le numéro de version, ce qui indique quil est sélectionné,
source pour télécharger le source,
skip (passer) ce qui indique quil nest pas sélectionné ;
Si lon avait déjà téléchargé des packages, pour ceux-ci, on aurait eu :
keep (garder) ce qui indique quon le garde,
retrieve (rapporter) ce qui indique quon 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 dinstaller à 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 quun menu pour accéder au Cygwin Bash Shell.
1.1.3 Téléchargement et installation de cygipc
On va à ladresse 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 darchives que lon 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 loption -i doit être spécifiée pour accepter les connections TCP/IP. A la place de loption -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 denvironnement 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 à laide 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 douvrir une session en tant que service à laide 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 sagit de lutilisateur postgres. Sous ce compte, on peut créer et supprimer des bases de données et des utilisateurs. Avec PostgreSQL sous Windows, il sagit de celui qui a fait linstallation.
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 dun utilisateur
On peut utiliser la commande createuser, éventuellement avec loption -P qui permet de spécifier le mot de passe de lutilisateur. 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 dune base de données
On peut utiliser la commande createdb, éventuellement avec loption -U pour préciser le nom du propriétaire et loption -E pour lencodage. 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 lon sest 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 dune base de données
Pour sauvegarder une base de données dans un fichier darchives (.tar) :
pg_dump -Ft nom_base > fichier.tar
Pour restaurer une base de données à partir de larchive :
pg_restore -d nom_base fichier.tar
Remarque : si nom_base a été supprimée, il faut dabord 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 lon 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 dadministrer PostgreSQL, de créer des bases, des tables, dinterroger, etc ... On peut même installer un plugin nommé pgmigration pour importer des bases Access et SQL Server par exemple. Cet outil se trouve à ladresse suivante :
http://pgadmin.postgresql.org
Il contient également la documentation sur PostgreSQL.
1.6 Jdbc
Il existe bien sûr un driver jdbc. Cest un driver de type 4, compatible JDBC2.0. On le trouve à ladresse :
http://jdbc.postgresql.org
1.7 Conclusion
Cest un excellent produit. La documentation est très bien faite. Il mérite vraiment de sy attarder.