Outils pour utilisateurs

Outils du site


admin-systeme:utiliser-postgresql

Opérations courantes avec PostgreSQL

Introduction

TODO


Création d'une base et de l'user associé

CREATE ROLE <user> LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE <database> WITH ENCODING='UTF8' OWNER=<user>;

Connexion à PostgreSQL depuis un script

Si vous utilisez le mode de connexion md5, vous serez surpris de découvrir que la commande psql ne permet de passer le mot de passe en paramètre. Pour éviter le prompt du password, et rendre possible la connexion à Postgres depuis un script, il suffit de configurer deux variables d'environnement :

  • PGUSER : Nom d'utilisateur pour accéder à la base
  • PGPASSWORD : Mot de passe associé

Ce qui donne quelque chose comme :

export PGUSER=postgres
export PGPASSWORD=motdepasse
psql database

Dump Postgres

Simple et efficace, directement depuis le shell :

pgdump -U user database

Force drop database

You can't drop postgres database while clients are connected to it. Quite robust way to work around it, is

  • Make sure noone can connect to this database.
UPDATE pg_database SET datallowconn = 'false' WHERE datname = 'mydb';
  • Force disconnection of all clients connected to this database (postgres >= 9.2).
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
  • Drop it
DROP DATABASE mydb;

Steps 1 and 2 require superuser privileges, step 3 requires database owner privilege.

Autoriser la création de base de données à un utilisateur

ALTER USER <user> CREATEDB;

Ressources

admin-systeme/utiliser-postgresql.txt · Dernière modification: 2013/11/30 12:25 par Arthur Hoaro