La tOiLeB

SGBD

PostgreSQL

PostgreSQL est un moteur de base de données relationnelles conforme aux spécifications SQL92. Il apporte, par rapport à l'autre moteur (mySQL), les subselects.

Installation

Les commandes postgreSQL sont à lancer avec l'utilisateur unix, propriétaire des fichiers des bases: postgres. Les données de l'environnement d'execution sont placées dans /var/lib/pgsql. Les fichiers de configuration par défaut et la base initiale sont créés dans /var/lib/pgsql/data par la commande

>initdb

La partie /var/lib/pgsql/data doit en général être éffacée lors des mises à jours de PostgreSQL. Les données des bases doivent être alors exportées puis réimportées.

Création d'une base

>createuser --createdb nom_utilisateur

à partir d'un patron (template1 par defaut)

>createdb --username nom_utilisateur -T template[0-1] nom_base

Exportation

  • de toute la base
    >pgdump nom_base | gzip -9 >base.bgz
  • du schéma
    >pgdump --schema-only nom_base | gzip -9 >base.gz
  • de toutes les données
    >pg_dump --data-only nom_base | gzip -9 >base.bz
  • de données d'une table
    >pg_dump --data-only --table=nom_table nom_base

Restauration

si la table existe la détruire, puis la recréer

>zcat base.gz | psql nom_base

Destruction

  • d'un utilisateur
    >dropuser nom_utilisateur
  • d'une base
    >dropdb nom_base

MySQL

MySQL est un moteur de base de données relationnelles robuste mais plus limité que PostgreSQL (pas de subselect en v4).

Installation

Les commandes MysSQL sont à lancer avec l'utilisateur unix, propriétaire des fichiers des bases: mysql. Les données de l'environnement d'execution sont placées dans /var/lib/mysql. Les fichiers de configuration par défaut et la base initiale sont créés dans /var/lib/mysql par la commande :

>mysql_install_db

l'utilisateur root (différent du root système) a tous les droits et son mot de passe est vide.

Création d'une base

>mysqladmin create $nom_base

Affecter tous les droits à un utilistateur

>mysql
grant  all on $nom_base.*  to $nom_utilisateur identified by $password

Destruction

>mysqladmin drop $nom_base