next up previous contents Next: Recherches avec psql. Up:  Serveur postgres SQL. Previous: Contenu du paquet postgres.   Table des matières  


39.4  Installation et initialisation de postgres.

postgres est disponible sous forme de paquets préparés dans votre distribution favorite. Installez simplement le paquet en utilisant rpm ou apt-get et suivez les instructions données ci-dessous.

Arrêtez le serveur postgres s'il fonctionne déjà; le script init.d peut agir sur postgres ou postgresql (commande Debian entre parenthèses):

/etc/rc.d/init.d/postgres stop 
( /etc/init.d/postgresql stop ) 


Modifiez le script init.d pour le support des requêtes TCP. Vous devez trouver une ligne comme suit, à laquelle il faut ajouter l'option -i. Elle peut ressembler à:

su -l postgres -c ``/usr/bin/pg_ctl -D $PGDATA \ 
      -p /usr/bin/postmaster -o '-i -o -e' start >/dev/null 2>&1'' 


Le format de date 28/4/2005 peut remplacer le format 4/28/2005 si on utilise les options -o -e. Notez que les hôtes ne seront pas à même de se connecter tant que vous n'éditez pas /var/lib/pgsql/data/pg_hba.conf (ou /etc/postgresql/pg_hba.conf, sur Debian) et que vous n'ajoutez pas:

host    mydatabase  192.168.4.7  255.255.255.0   trust 


Dans les deux cas, vous devrez vérifier que ce fichier garantit que seuls les hôtes autorisés peuvent se connecter à votre base de données. Sinon, enlevez tout-à-fait l'option -i si vous vous connectez seulement en local sur la machine. Jusqu'à un certain point, vous pouvez aussi restreindre les utilisateurs pouvant se connecter à ce fichier.

Il serait intéressant que la connexion (socket) de domaine UNIX que postgres écoute (c'est-à-dire /tmp/.s.PGSQL.5432) ait pour droits 0770 au lieu de 0777. De cette manière, vous pourriez restreindre les connexions aux groupes d'utilisateurs appartenant au groupe postgres. Vous pouvez ajouter cette caractéristique en recherchant la commande C chmod dans /src/backend/libpq/pgcomm.c à l'intérieur des sources de postgres-7.0. Il se peut que les versions ultérieures aient déjà adapté les droits à 0770.

Pour exécuter postgres, vous devez avoir un utilisateur ayant ce nom. Si ce n'est déjà fait, entrez:

/usr/sbin/useradd postgres 


et redémarrez le serveur avec:

/etc/rc.d/init.d/postgresql restart 


A la première exécution, le script postgres init.d initialise une base de données modèle, de sorte que vous pouvez effectuer un deuxième démarrage.

A présent, vous êtes en mesure de créer votre propre base de données. L'exemple suivant crée une base appelée finance et un utilisateur postgresql nommé finance. Ceci est fait en tant qu'utilisateur postgres (et cela est réalisé avec l'option -U). Vous devrez exécuter ces commandes en tant qu'utilisateur root ou comme utilisateur postgres sans le motif -U postgres.

[root@cericon]# /usr/sbin/useradd finance 
[root@cericon]# createuser -U postgres -adduser -createdb finance 
CREATE USER 
[root@cericon]# createdb -U finance finance 
CREATE DATABASE 
[root@cericon]#  


next up previous contents Next: Recherches avec psql. Up:  Serveur postgres SQL. Previous: Contenu du paquet postgres.   Table des matières  
1-01-2006