Ce code source a pour but de montrer comment utiliser la bibliothèque C
libpq pour se connecter à une base de données
PostgreSQL sur un système
GNU/Linux.
Le seul fichier d'en-tête nécessaire pour compiler notre programme est le fichier
libpq-fe.h. Bien sûr, pour avoir ce fichier il faut installer la bibliothèque
libpq(et non pq++) . Deux méthodes pour installer la bibliothèque :
- Installer le RPM ou le DEB de la bibliothèque à l'aide du package manager propre à votre Distribution Linux.
- Installer PostgreSQL à partir de la source (http://www.postgresql.org/docs/8.4/static/installation.html) : Ainsi, la bibliothèque sera installée par défaut !!
On va utiliser la deuxième méthode. Le serveur sera installé dans le répertoire :
/usr/local/pgsql.
Il faut, ensuite, installer la bibliothèque partagée
libpq.so.5. Elle sera utilisée par l'éditeur de liens (
ld) du compilateur
gcc pour construire l'exécutable. Pour cela, vous devez installer le package
postgresql-libs.
I. Changer la méthode d'authentification du serveur
Par défaut, la méthode d'authentification du serveur est '
trust'. Vous devez la changer en '
password'. Pour la changer, procédez comme suit :
- Ouvrir un terminal
- cd un_dir_propre_à_postgres
- su postgres
- /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data >logfile 2>&1 & -- lancer le serveur en background
- /usr/local/pgsql/bin/psql -- psql is a terminal-based front-end to PostgreSQL
- ALTER USER postgres WITH PASSWORD 'admin'; -- assigner un password ('admin') au superuser (postgres)
- tapez \q
- /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop -- fermer le serveur
Maintenant, ouvrir en tant-que
root le fichier
/data/pg_hba.conf et remplacez les mots '
trust' par '
password' .
II. Créer la base des données :
Le programme va se connecter à la base de donnée store. Vous devez le créer ! Suivez les étapes suivantes pour le créer rapidement :
- su postgres
- /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ start >logfile 2>&1 &
- /usr/local/pgsql/bin/psql
- CREATE USER client1 PASSWORD 'client1'; -- créer un user (role + login) avec le password 'client1'
- \q
- /usr/local/pgsql/bin/createdb -T template0 store -- créer une db 'store' à partir du template 'template0'
- /usr/local/pgsql/bin/psql store < dbstore.txt -- restorer la db 'store' à partir du SQL dump 'dbstore.txt'.
- /usr/local/pgsql/bin/psql -U client1 store
Vous pouvez maintenant compiler et exécuter le programme. La base de données store est donnée juste pour tester le programme.