Postgres
De Linuxmemo.
Bases de données:
sudo -u postgres psql
Sommaire |
[modifier] 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;"
ALTER USER root WITH SUPERUSER;
[modifier] Commandes du client "psql"
\? = aide suivante \l = liste des bases \c nombase = connexion a la base nombase \d = liste des tables \q = quitter \h = aide syntaxe SQL 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
[modifier] 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
To dump all databases:
$ pg_dumpall > db.out
To restore all databases from this file, you can use (il faut que l'utilisateur "postgres" puisse lire le fichier db.sql):
$ sudo -u postgres psql -f db.out
[modifier] 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;
- compter les lignes, fonction COUNT (*)
SELECT COUNT (*) FROM table;
- changer le mot de passe d'un utilisateur
ALTER USER msf WITH PASSWORD 'msf';
[modifier] Astuces
- Rebuild all objects in this database that use the default collation and run ALTER DATABASE postgres REFRESH COLLATION VERSION
- Connect to postgres
sudo -u postgres psql
List all databases to ensure your database exists
\l Alter gvmd & postgres database to refresh Collation version
ALTER DATABASE gvmd REFRESH COLLATION VERSION; ALTER DATABASE postgres REFRESH COLLATION VERSION;
Exit postgres
\q or exit
Restart GSM services
systemctl daemon-reload && systemctl restart gvmd.service gsad.service
Check if warnings are fixed
gvm-check-setup
[modifier] Références
http://blog.endpoint.com/2009/12/mysql-and-postgres-command-equivalents.html
Voir: Sql