Introduction à l'installation et l'administration Postgresql
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 !