Postgres
De Linuxmemo.
Version du 9 octobre 2014 à 13:49 par Linuxmemo (discuter | contributions)
Bases de données:
Sommaire |
Démarrage rapide de Postgres
./configure gmake su gmake install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
CREATE USER tom WITH PASSWORD 'myPassword'; CREATE DATABASE jerry; GRANT ALL PRIVILEGES ON DATABASE jerry to tom; \q
sous bash
su - postgres psql CREATE USER user_name; CREATE DATABASE nomdb; GRANT ALL ON DATABASE user_name TO nomdb; psql -c "ALTER USER nom_user WITH PASSWORD 'password';" psql -c "DROP USER jonathan;"
Commandes du client "psql"
\l = liste des bases \c nombase = connexion a la base nombase \d = liste des tables \q = quitter \h = aide SELECT version(); = version PostgreSQL SELECT current_date; = date actuelle \i fichier.sql = lit les instructions du fichier fichier.sql \d table = décrit une table (comme DESCRIBE avec MySQL)
-- commentaire
Sauvegarde restauration de base
Le principe est de générer un fichier texte de commandes SQL (appelé « fichier dump »), qui, si on le renvoie au serveur, recrée une base de données identique à celle sauvegardée.
- sauvegarde
pg_dump -h 127.0.0.1 -U "user" -W base_de_donnees > fichier_de_sortie
ou
pg_dumpall -h localhost -U postgres -f postgres-all-backup.sql
pour le mot de passe (rep perso du compte qui exécute la sauvegarde)
vim ~/.pgpass nom_hote:port:database:nomutilisateur:motdepasse ou nom_hote:port:*:nomutilisateur:motdepasse chmod 600 ~/.pgpass
- restauration
pg_dump -h 127.0.0.1 -U "user" -W base_de_donnees < fichier_d_entree
Recettes
- Taille d'une base
SELECT pg_size_pretty(pg_database_size('nom_base'));
- Taille d'une table
SELECT pg_size_pretty(pg_relation_size('nom_table'));
- Export CSV d’une requête postgresql
COPY (select id, firstname, name, email from users) TO '/tmp/export_users.csv' WITH CSV;
Références
http://blog.endpoint.com/2009/12/mysql-and-postgres-command-equivalents.html
Voir: Sql