Postgres
De Linuxmemo.
(Différences entre les versions)
(→Astuces) |
|||
(26 versions intermédiaires masquées) | |||
Ligne 3 : | Ligne 3 : | ||
Bases de données: | Bases de données: | ||
- | + | sudo -u postgres psql | |
+ | |||
+ | ==Démarrage rapide de Postgres== | ||
./configure | ./configure | ||
Ligne 18 : | Ligne 20 : | ||
/usr/local/pgsql/bin/psql test | /usr/local/pgsql/bin/psql test | ||
- | sous bash | + | CREATE USER tom WITH PASSWORD 'myPassword'; |
+ | CREATE DATABASE jerry; | ||
+ | GRANT ALL PRIVILEGES ON DATABASE jerry to tom; | ||
+ | \q | ||
+ | |||
+ | sous bash | ||
su - postgres | su - postgres | ||
- | + | psql | |
- | ALTER USER nom_user WITH PASSWORD 'password'; | + | |
+ | 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; | |
+ | == 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 35 : | Ligne 50 : | ||
\d table = décrit une table (comme DESCRIBE avec MySQL) | \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 | ||
+ | |||
+ | 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== | ||
+ | *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'; | ||
+ | |||
+ | ==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== | ||
http://blog.endpoint.com/2009/12/mysql-and-postgres-command-equivalents.html | http://blog.endpoint.com/2009/12/mysql-and-postgres-command-equivalents.html | ||
+ | |||
+ | Voir: [[Sql]] |
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