15 septembre 2014

Postgresql 9 + Centos 7



Un rapide mémo sur l'installation de Postgresql 9.x sur centos7 avec un PGDATA personnalisé.


1: Installer postgresql
yum install postgresql postgresql-server


2: Créer le home directory de postgresql
mkdir /home/postgres
chown postgres:postgres /home/postgres


3: Initialiser le repertoire où postgresql va stocker ses bases de données et autres meta-data
su postgres
cd
initdb /home/postgres/data
exit


4: Configuration systemd
Ce qui suit a pour but de ne pas modifier la version d'origine de  /usr/lib/systemd/system/postgresql.service
La solution proposé par postgresql est d'utiliser .include mais il faut savoir que cette méthode  est obsolète (https://lists.fedoraproject.org/pipermail/devel/2014-July/200804.html)

Créer le fichier  /etc/systemd/system/postgresql.service
avec ces 3 lignes (respectez la case)

.include /usr/lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/home/postgres/data

Si nécessaire ajouter la ligne suivante pour aussi changer le port
Environment=PGPORT=2345


5: Démarrer le serveur postgresql à la main

systemctl daemon-reload                (important)
systemctl start postgresql

verifier les log

systemctl status postgresql


6: Si tout va bien activer le démarrage automatique
systemctl enable postgresql 

Reste à configurer /home/postgres/pg_hba.conf
Voir ces 3 posts:

7: Installer les extensions

yum install postgresql-contrib

Toutes les extensions vont dans /usr/share/pgsql/extension
Pour installer une extension (par exemple adminpack) dans une base il faut se se connecter à cette base avec le user postgres et taper

CREATE EXTENSION adminpack;



8: Installer les .h


yum install postgresql-devel

Necessaire si on veut compiler un driver pour perl php ruby etc...
Par exemple quand un programme d’installation a besoin de libpq-fe.h