Test d'installation d'une base de données PostgreSQL

2 minute read Published:

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

:PROPERTIES: :CUSTOM_ID: test :END:

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)

Quelques liens


☣ laisser un commentaire ☣