PostgreSQL est un système de gestion de bases de données objets relationnelles (ORDBMS), dérivé du système de gestion de bases de données Postgres de Berkeley.
Téléchargement (FTP): ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.4/postgresql-7.3.4.tar.gz
Taille du téléchargement: 11 Mo
Estimation de l'espace disque requis: 86 Mo
Estimation du temps de construction: 1,74 SBU
Installez PostgreSQL avec les commandes suivantes:
./configure --prefix=/usr && make && make install |
Initialise un cluster de base de données avec les commandes suivantes:
mkdir -p /var/pgsql/data && useradd -d /var/pgsql/data postgres && chown postgres /var/pgsql/data && su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' |
Démarre le serveur de base de données avec la commande suivante:
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' |
Maintenant nous pouvons créer une base de données et vérifier l'installation:
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') |
useradd -d /var/pgsql/data postgres : Ajoute un utilisateur non privilégié pour exécuter le serveur de base de données. Lancer le serveur en tant que root est dangereux, et beaucoup plus simplement ne fonctionnera pas.
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : Initialise la base de données. Cette commande ne peut pas être exécuté par root.
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : Lance le serveur de la base de données. L'utilisateur postgres doit aussi exécuter cette commande.
createdb test, create table t1 , insert into t1 values..., select * from t1 : Crée la base de donnée, ajoute une table, insère quelques lignes dans la table et les sélectionne pour vérifier que l'installation fonctionne correctement.
$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf
La variable d'environnement PGDATA est utilisé pour distinguer les clusters de bases de données en lui donnant comme valeur celle du répertoire contenant le cluster désiré. Les trois fichiers de configuration existent dans chaque répertoire PGDATA/. Les détails sur le format des fichiers et des options disponibles dans chacun d'entre eux peuvent être trouvé dans:
file:///usr/share/doc/postgresql/html/tutorial.html
Créez le script de démarrage postgres avec ce qui suit:
cat > /etc/rc.d/init.d/postgres << "EOF" #!/bin/bash # Début $rc_base/init.d/postgres # Basé sur le script sysklogd de LFS-3.1 et précédent. # Réécrit par Gerard Beekmans - gerard@linuxfromscratch.org source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Starting PostgreSQL daemon..." su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \ -l /var/pgsql/data/logfile -o "-i" ' evaluate_retval ;; stop) echo "Stopping PostgreSQL daemon..." /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data evaluate_retval ;; restart) $0 stop sleep 1 $0 start ;; status) /usr/bin/pg_ctl status -D /var/pgsql/data ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac # Fin $rc_base/init.d/ EOF chmod 755 /etc/rc.d/init.d/postgres |
Créez le lien symbolique de ce fichier dans le répertoire rc.d adéquat avec les commandes suivantes:
cd /etc/rc.d/init.d && ln -sf ../init.d/mysql ../rc0.d/K26postgres && ln -sf ../init.d/postgres ../rc1.d/K26postgres && ln -sf ../init.d/postgres ../rc2.d/K26postgres && ln -sf ../init.d/postgres ../rc3.d/S34postgres && ln -sf ../init.d/postgres ../rc4.d/S34postgres && ln -sf ../init.d/postgres ../rc5.d/S34postgres && ln -sf ../init.d/postgres ../rc6.d/K26postgres |
Le package PostgreSQL contient clusterdb, createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_controldata, pg_ctl, pg_dump, pg_dumpall, pg_encoding, pg_id, pg_resetxlog, pg_restore, postgres, postmaster, psql, vacuumdb, libecpg, libpq et différents modules charset.
clusterdb est un utilitaire pour reclustering les tables d'une base de données PostgreSQL.
createdb crée une nouvelle base de données PostgreSQL.
createlang définit un nouveau langage procédural PostgreSQL.
createuser définit un nouveau compte utilisateur PostgreSQL.
dropdb supprime une base de données PostgreSQL.
droplang supprime le langage procédural PostgreSQL.
dropuser supprime un compte utilisateur PostgreSQL.
ecpg est le préprocesseur SQL embarqué.
initdb crée un nouveau cluster de base de données.
initlocation crée une aire de stockage d'une seconde base de données.
ipcclean supprime la mémoire partagée et les sémaphores laissées par un serveur de base de données annulé.
pg_config retrouve des informations sur la version de PostgreSQL.
pg_controldata renvoit des informations initialisées lors de la commande initdb, telle que la version du catalogue et la locale du serveur.
pg_ctl contrôle le démarrage et l'arrêt du serveur de base de données.
pg_dump extrait les données et les metadatas d'une base de données et les mets dans des scripts qui sont utilisés pour recréer la base de données.
pg_dumpall appelle récursivement pg_dump pour chaque base de données d'un cluster.
pg_resetxlog efface les traces << write-ahead >> et réinitialise de façon optionnel quelques champs du fichier pg_control.
pg_restore crée une base de données de fichiers dump créés par pg_dump.
postgres est un serveur de base de données simple utilisateur, généralement utilisé pour le débuggage.
postmaster est le démon multi-utilisateur de la base de données.
psql est un shell console de bases de données.
vacuumdb rend compact les bases de données et génère des statistiques pour l'analyseur de requêtes.
Précédent | Sommaire | Suivant |
MySQL-4.0.15a | Niveau supérieur | Serveur web |