Se connecter avec le client en ligne de commande
MySQL
dbname
peut être ignoré, et on devra alors choisir une base depuis
l'environnement du client.
Si l'option -h
n'est pas utilisée pour préciser un nom de machine, la
connexion se fera par socket unix au serveur local (comme si localhost
était précisé).
PostgreSQL
L'utilisation d'un mot de passe n'est pas systématique puisqu'il dépend de la méthode d'authentification qui sera utilisée, mais si celui-ci était nécessaire, il sera toujours demandé. Il n'est donc pas nécessaire de fournir une option pour demander la saisie d'un mot de passe.
Là aussi, si -h
n'est pas utilisée pour préciser un nom de machine, la
connexion se fera au serveur local.
Aide en ligne
MySQL
Pour obtenir de l'aide en ligne concernant les commandes SQL ou les commandes spécifiques au client mysql :
help commande
Pour afficher quelques commandes de configuration du client.
\?
PostgreSQL
Pour l'aide concernant les commandes SQL uniquement.
\help commandesql
Pour afficher les commandes spécifiques du client (très utile).
\?
Changer la base de données courante
MySQL
use dbname;
PostgreSQL
\c dbname
Afficher la définition d'une table
MySQL
describe mytable;
ou, en version raccourcie :
desc mytable;
PostgreSQL
\d mytable
Voir la liste des utilisateurs
MySQL
select user from mysql.user;
PostgreSQL
\u
Voir la liste des bases de données
MySQL
show databases;
PostgreSQL
\l
Voir la liste des tables de la base de données courante
MySQL
show tables;
PostgreSQL
\dt
Voir la liste des privilèges sur les tables
MySQL
On peut voir tous les droits accordés à un utilisateur avec la commande :
show grants for 'user'@'machine.domaine.dpn';
Autre solution pour voir les droits sur une table :
show full columns from table;
PostgreSQL
Pour voir ses propres droits :
\dp $user
Pour voir les droits de tous les utilisateurs :
\dp
Comme pour les autres commandes, seuls les objets des schémas visibles sont
affichés. Utiliser la notation monschema.table
pour désigner un objet d'un
schéma non inclus dans le search_path
.
Notez que le propriétaire d'un objet ne figure pas dans la liste si les droits n'ont pas été modifiés (le propriétaire a tous les droits sur l'objet).
La commande \z
est un alias de \dp
.
Changer le mot de passe d'un utilisateur
MySQL
set password for myuser = password('mdpbidon');
PostgreSQL
with password 'mdpbidon';
myuser
Exportation/sauvegarde de la base dans des fichiers.
MySQL
Quelques options utiles de la commande mysqldump
:
-A
, ou--all-databases
(au lieu dedbname
): pour sauvegarder toutes les bases en une fois-B
(au lieu dedbname
): exporter ces bases (liste séparée par des espaces)-c
: utiliser des instructionsINSERT
complètes (avec les noms des colonnes)-n
: n'exporte pas les instructions de création des bases de données-t
: n'exporte aucune instruction de création-t
: n'exporte pas lesCREATE TABLE
(uniquement les données)-d
: n'exporte pas les données des tables (seulement lesCREATE TABLE
)
Pour la restauration des données, redirigez le fichier texte contenant les
instructions vers le client mysql
:
L'option -o
de mysql
permet d'ignorer les requêtes concernant d'autres
bases que celle mentionnée en argument. Ça peut être utile lors d'une telle
commande de restauration si on ne dispose que d'un fichier contenant la
sauvegarde de toutes les bases de données et qu'on ne veut en restaurer qu'une
seule.
PostgreSQL
Quelques options utiles de la commande pg_dump
:
-D
: utiliser desINSERT
avec colonnes plutôt que desCOPY
.-t mytable
: uniquement la table précisée-a
: seulement les données-s
: seulement les définitions des objets, pas les données-s
: n'exporte que les définitions d'objets (pas les données)-a
: n'exporte que les données (pas les définitions)
Contrairement à mysqldump
, pg_dump
peut exporter dans des formats autres
qu'un fichier texte, qui pourront être manipulés par pg_restore
. Pour choisir
le format de sortie de pg_dump
, on peut utiliser son option --format=format
ou -F format
:
--format=format
, ou-F format
: précise le format de la sortie.format
peut valoir :plain
oup
: texte (format par défaut)custom
ouc
: un format adapté àpg_restore
, qui permet de réordonner des données et définitions d'objets. Il est compressé par défaut.tar
: génère une archive tar adaptée àpg_restore
, permettant de réordonner ou d'exclure des données et définitions d'objets, ainsi que de limiter les données à leur restauration.
Pour la restauration des données depuis un format texte (hors utilisation de
pg_restore
), redirigez simplement le fichier texte contenant les instructions
vers le client psql
:
Quitter l'environnement du client
Pour quitter l'environnement interactif des clients mysql
et psql
, le
simple ^D
(ctrl+d) fonctionne, comme dans la plupart des environnement, mais
des commandes spécifiques existent :
MySQL
Pour sortir de l'environnement de mysql
, vous pouvez utilisez une de ces
commandes :
\q
quit
^D
PostgreSQL
Pour sortir de l'environnement de psql
, utilisez une de ces commandes :
\q
^D