Test d'installation d'une base de données PostgreSQL
PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO), considéré par beaucoup comme le SGDB Open Source de référence.
Une fois installée sur un nouveau système il est bon de réaliser un petit test avant d'y importer ses données.
Groupe/Utilisateur
Le service ne doit pas tourner avec les droits root, il est préférable de créer un utilisateur et un groupe dédiés. Sur un système Slackware, il est conseillé d'utiliser ceci :
postgresql ========== User: postgres UID: 209 GID: 209 Group: postgres GID: 209
Voici un petit script qui vérifiera si tout est ok et/ou vous créera tout ça (script fourni dans le paquet Salix).
#!/bin/sh if [ $(id -u) -ne 0 ]; then echo "you must be root" exit 1 fi . /etc/postgresd.conf grep -q "^$PGGROUP:" /etc/group if [ $? -ne 0 ]; then groupadd -g 209 $PGGROUP fi grep -q "^$PGUSER:" /etc/passwd if [ $? -ne 0 ]; then useradd -u 209 -d $PGHOME -m -k /dev/null -g $PGGROUP $PGUSER fi chmod u=rwx,go= $PGHOME su - $PGUSER -c "initdb -D $PGDB"
Comme vous le voyez, il se base sur /etc/postgresd.conf :
#!/bin/sh PGUSER=postgres PGGROUP=postgres PGHOME=/var/lib/postgres PGDB=$PGHOME/db PGLOG=/var/log/postgres.log PGPID=$PGHOME/postmaster.pid
Test
Passez root :
su -
Puis, création d'une base de donnée test, d'une table t1, insertion de données et affichage :
su - postgres -c '/usr/bin/createdb test' && echo "create table t1 ( name varchar(20), state_province varchar(20) );" | (su - postgres -c '/usr/bin/psql test ') && echo "insert into t1 values ('Billy', 'NewYork');" | (su - postgres -c '/usr/bin/psql test ') && echo "insert into t1 values ('Evanidus', 'Quebec');" | (su - postgres -c '/usr/bin/psql test ') && echo "insert into t1 values ('Jesse', 'Ontario');" | (su - postgres -c '/usr/bin/psql test ') && echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test')
Si tout va bien, vous obtiendrez ceci :
CREATE TABLE INSERT 0 1 INSERT 0 1 INSERT 0 1 name | state_province ----------+---------------- Billy | NewYork Evanidus | Quebec Jesse | Ontario (3 rows)