Postgres
De Linuxmemo.
(Différences entre les versions)
(→Recettes) |
(→Astuces) |
||
(9 versions intermédiaires masquées) | |||
Ligne 2 : | Ligne 2 : | ||
Bases de données: | Bases de données: | ||
+ | |||
+ | sudo -u postgres psql | ||
==Démarrage rapide de Postgres== | ==Démarrage rapide de Postgres== | ||
Ligne 34 : | Ligne 36 : | ||
psql -c "DROP USER jonathan;" | psql -c "DROP USER jonathan;" | ||
- | + | ALTER USER root WITH SUPERUSER; | |
+ | == Commandes du client "psql" == | ||
+ | '''\? = aide suivante''' | ||
\l = liste des bases | \l = liste des bases | ||
\c nombase = connexion a la base nombase | \c nombase = connexion a la base nombase | ||
\d = liste des tables | \d = liste des tables | ||
\q = quitter | \q = quitter | ||
- | \h = aide | + | '''\h = aide syntaxe SQL''' |
SELECT version(); = version PostgreSQL | SELECT version(); = version PostgreSQL | ||
SELECT current_date; = date actuelle | SELECT current_date; = date actuelle | ||
Ligne 63 : | Ligne 67 : | ||
*restauration | *restauration | ||
pg_dump -h 127.0.0.1 -U "user" -W base_de_donnees < fichier_d_entree | 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 | ||
==Recettes== | ==Recettes== | ||
Ligne 77 : | Ligne 86 : | ||
*compter les lignes, fonction COUNT (*) | *compter les lignes, fonction COUNT (*) | ||
SELECT COUNT (*) FROM table; | SELECT COUNT (*) FROM table; | ||
+ | *changer le mot de passe d'un utilisateur | ||
+ | ALTER USER msf WITH PASSWORD 'msf'; | ||
+ | |||
+ | ==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 | ||
==Références== | ==Références== |
Version actuelle en date du 4 février 2025 à 13:32
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