System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Introduction à l'installation et l'administration Postgresql

postgreSQL.png

PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO)

Installation :

Compilation : http://www.system-linux.eu/?post/20...

# yum install postgresql-server postgresql-contrib

Création d'un cluster de bases de données :

# postgresql-setup initdb

Configuration de l'authentification par mot de passe :

Il suffit de remplacer ident par md5, crypt ou password.

# vi /var/lib/pgsql/data/pg_hba.conf

Démarrage

# systemctl start postgresql
# systemctl enable postgresql

Connexion :

# su - postgres
$ psql

Voila vous êtes connectez à l'interface de commande.

Afficher la liste des roles (équivalent des comptes dans MariaDB) :

 SELECT * FROM pg_roles;

Pour les droits :

t = true f = false

Créer un role :

Si vous êtes loguer avec l'utilisateur postgres :

$ createuser --interactive

Si vous êtes logué à l'instance :

postgres=#create role nom_utilisateur;

Pour supprimer un role :

drop role nom_utilisateur;

Voir vos paramètres de connexion actuel :

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Changer de database :

postgres=#\connect nombase

Pour un serveur en production il est bien de créer un rôle qui dispose des droits CREATEDB et CREATEROLE mais qui n'est pas un superutilisateur, et d'utiliser ce rôle pour toute la gestion des bases de données et des rôles. Cette approche évite les dangers encourus en travaillant en tant que superutilisateur pour des tâches qui n'ont pas besoin de cet état.

Créer une database :

postgres=#create database database1;

Lister toutes les databases :

postgres=# \list
ou
-bash-4.2$ psql -l

Créer une table :

postgres=#create table france (ville varchar(80), nord int, sud int, est int, ouest int, date date);

Donner des droits sur une table à un role :

postgres=#grant update on nomtable to nomuser;

Afficher une tables :

postgres=#\dt

Donner les droits à un utilisateur sur toute une base :

postgres=#grant  all privileges on database nombase to nomuser;

Crée une base de données liée à un utilisateur :

$ createdb -O login -E UTF8 base

Supprimer une base de donnée :

$ dropdb base
postgres=# drop database nombase;

Lister les roles :

postgresql=#\du

Lister les fonctions :

postgres=#\df

Lister les indexes :

=# \di

Pour voir toutes les options possible :

postgres=#\?

Changer le mot de passe d'un utilisateur :

postgres=# alter user nomuser with password 'motdepasse';

Supprimer un utilisateur :

postgres=#drop user nomuser;

Création Tablespaces :

Tablespace : emplacement dans le système de fichiers où seront stockés les fichiers représentant les objets de la base de données.

postgres=#create tablespace nomtablespace LOCATION '/mnt/sda1/postgresql/data';

Sauvegardes :

Sauvegarde d'une seule base :
$ pg_dump <base> >dump.sql

Cette commande ne sauvegarde ni les tablespaces, ni les roles.

Pour les sauvegarder aussi :

$ pg_dumpall -g >dump.sql

Sauvegarde de toutes les bases :

$ pg_dumpall >dump.sql

Sauvegarde d'une table d'une base de données :

$ pg_dump -t nomtable nombase

À moins de vouloir restaurer le contenu sur un autre moteur de base de données, il est préférable de faire des dumps au format custom, qui permet la compression, un processus de restauration sur plusieurs threads, et de sélectionner finement quels éléments restaurer lors de la restauration :

$ pg_dumpall -F c >all.dump

Restauration:

SQL:

$ psql nombase < dump.sql

Restauration de données format custom :

$ pg_restore -F c all.dump

Pour aller plus loin :

Lien vers la documentation officielle qui est plus que bien faite !

http://docs.postgresql.fr/9.4/index...

Par GanGan | le vendredi, juin 3 2016 10:00