mysql
envoie des requêtes SQL que vous avez
saisie au serveur, pour exécution. Il y a aussi des commandes
que le client mysql
interprête. Si vous
tapez ‘help
’ en ligne de
commande, mysql
va afficher les commandes
qu'il supporte :
mysql> help
MySQL commands:
? (\h) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server.
Optional arguments are db and host.
delimiter (\d) Set query delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server,
display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager].
Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file.
Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile].
Append everything into given outfile.
use (\u) Use another database.
Takes database name as argument.
Les commandes edit
,
nopager
, pager
et
system
ne fonctionnent que sous Unix.
La commande status
donne des détails sur la
connexion et le serveur utilisés. Si vous fonctionnez en mode
--safe-updates
, status
va
aussi afficher les valeurs des variables de
mysql
qui affectent vos requêtes.
Pour enregistrer les requêtes et leur résultat, utilisez la
commande tee
. Toutes les données affichées
à l'écran seront ajoutées à un fichier donné. Cela peut
être très pratique pour déboguer. Vous pouvez activer cette
fonctionnalité en ligne de commande, avec l'option
--tee
, ou interactivement avec la commande
tee
. Le fichier tee
peut
être désactivé interactivement avec la commande
notee
. Exécuter tee
à
nouveau ré-active le log. Sans paramètre, le fichier
précédent sera utilisé. Notez que tee
envoie les requêtes dans le fichier après chaque commande,
juste avant que mysql
ne l'affiche.
La lecture et la recherche dans les résultats de requêtes en
mode interactif est possible en utilisant les programmes Unix
less
, more
, ou tout autre
programme similaire, avec l'option --pager
. Si
vous ne spécifier par de valeur d'option,
mysql
regarde la valeur de la variable
d'environnement PAGER
, et utilise ce pager.
Vous pouvez aussi l'activer interactivement avec la commande
pager
et la désactiver avec
nopager
. La commande prend un argument
optionnel : s'il est fournit, le programme de pager indiqué
sera utilisé. Sinon, le pager sera celui indiqué en ligne de
commande, ou stdout
si aucun pager n'était
indiqué.
La pagination de sortie ne fonctionne que sous Unix, car elle
utilise la fonction popen()
, qui n'existe pas
sous Windows. Pour Windows, la commande tee
peut être utilisée pour sauver le résultat, même si ce n,est
pas aussi pratique que pager
pour naviguer
dans le résultat.
Quelques conseils avec la commande pager
:
Vous pouvez l'utiliser pour écrire les résultats dans un fichier :
mysql> pager cat > /tmp/log.txt
Vous pouvez lui passer les options que le page comprendra :
mysql> pager less -n -i -S
Dans le précédent exemple, notez l'option
-S
. Vous la trouverez pratique pour
naviguer dans des résultats très larges. Parfois, un
résultat très large est difficile à lire à l'écran.
L'option -S
de less
rend le résultat plus lisible, car vous pouvez aussi
scroller horizontalement, avec les flèches de droite et de
gauche. Vous pouvez aussi utiliser interactivement
-S
dans less
pour
activer ou désactiver la navigation horizontale. Pour plus
d'informations, voyez le manuel de
less
:
shell> man less
Vous pouvez spécifier des commandes de pages très complexe :
mysql>pager cat | tee /dr1/tmp/res.txt \
| tee /dr2/tmp/res2.txt | less -n -i -S
Dans cet exemple, la commande va envoyer les résultats de
la commande dans deux fichiers différents, dans deux
dossiers différents, placés sur deux devis
/dr1
et /dr2
, mais
affichera toujours le résultat à l'écran via
less
.
Vous pouvez aussi combiner les deux fonctions ci-dessus :
activer le tee
, spécifier le
pager
‘less
’
et vous serez capable de naviguer dans les résultats avec le
less
Unix, tout en enregistrant tous les
résultats dans un fichier. La différence entre le
tee
d'Unix utilisé avec le
pager
et le tee
intégré
du client mysql
, est que le
tee
intégré fonctionne même si vous n'avez
pas de tee
Unix disponible. Le
tee
enregistre tout ce qui est affiché à
l'écran, alors que le tee
Unix utilisé avec
pager
n'en note pas autant. Enfin, le
tee
interactif est plus facile à activer et
désactiver, lorsque vous souhaitez enregistrer un résultat
dans un fichier, mais que vous voulez désactiver cette
fonctionnalité à d'autres moments.
Depuis MySQL version 4.0.2, il est possible de modifier l'invite
de commande de mysql
. La chaîne de
définition de l'invite de commande accepte les séquences
suivantes :
Option | Description |
\v |
version de mysqld |
\d |
database en cours |
\h |
hôte MySQL |
\p |
port de connexion |
\u |
nom d'utilisateur |
\U |
Identifiant complet username@host
|
\\ |
‘\ ’ |
\n |
nouvelle ligne |
\t |
tabulation |
\ |
espace |
\_ |
espace |
\R |
heure 24h (0-23) |
\r |
heure 12h (1-12) |
\m |
minutes |
\y |
année sur deux chiffres |
\Y |
année sur quatre chiffres |
\D |
format de date complet |
\s |
secondes |
\w |
jour de la semaine en trois lettres (Mon, Tue, ...) |
\P |
am/pm |
\o |
mois au format numérique |
\O |
mois en trois lettres (Jan, Feb, ...) |
\c |
compteur du nombre de commande |
‘\
’ suivi de n'importe quelle
lettre représente la lettre littéralement.
Si vous spécifiez une commande prompt
sans
argument, mysql
utilisera l'invite de
commande par défaut de mysql>
.
Vous pouvez modifier l'invite de commande comme ceci :
Variable d'environnement Vous pouvez utiliser la variable
d'environnement MYSQL_PS1
, en lui donnant
la chaîne d'invite. Par exemple :
shell> export MYSQL_PS1="(\u@\h) [\d]> "
Utiliser le fichier d'options
Vous pouvez configurer l'invite de commandes
prompt
dans le fichier d'options MySQL,
comme /etc/my.cnf
ou
.my.cnf
, dans le groupe
mysql
. Par exemple :
[mysql] prompt=(\\u@\\h) [\\d]>\\_
Dans cet exemple, notez que les anti-slash sont doublés. Si
vous configurez l'invite de commande
prompt
dans un fichier d'options, il est
recommandé de doubler les anti-slash, lorsque vous utilisez
des options. Il y a des recoupements entre les séquences
protégées et les options. Ces séquences sont listées
dans Section 4.3.2, « Fichier d'options my.cnf
». Ce recoupement peut
vous causer des problèmes avec des anti-slashs uniques. Par
exemple, \s
sera interprété comme un
espace, plutôt que comme le nombre de secondes. La valeur
suivante montre comment définir une invite avec l'heure au
format HH:MM:SS>
:
[mysql] prompt="\\r:\\m:\\s> "
Utilisez une option de ligne de commande
Vous pouvez utiliser l'option --prompt
dans
la commande mysql
. Par exemple :
shell> mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>
Interactivement
Vous pouvez aussi utiliser la commande
prompt
(ou \R
) depuis
le client pour modifier interactivement l'invite de
commande. Par exemple :
mysql>prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_' (user@host) [database]> (user@host) [database]> prompt Returning to default PROMPT of mysql> mysql>
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.