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

[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.

PostgreSQL

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)

`----

Quelques liens

PostgreSQL sur BLFS

Slackbuilds.org UID/GID

PostgreSQLFR

Documentation FR