[+/-]
mysql
est un simple script SQL (qui exploite
GNU
readline
). Il supporte
une utilisation interactive et non-interactive. Lorsqu'il est
utilisé interactivement, les résultats des requêtes sont
présentés sous la forme d'une table au format ASCII. Lorsqu'il
est utilisé non-interactivement, par exemple, comme filtre, le
résultat est fourni au format de liste avec séparation par
tabulation (le format d'affichage peut être modifié en utilisant
les options de ligne de commande).
Si vous avez des problèmes liés à des insuffisances de mémoire
avec le client, utilisez l'option --quick
! Cela
force mysql
à utiliser
mysql_use_result()
plutôt que
mysql_store_result()
pour lire les résultats.
Utiliser mysql
est très simple. Il suffit de
le démarrer comme ceci :
shell> mysql db_name
ou :
shell> mysql --user=user_name --password=your_password db_name
Tapez une commande SQL, puis terminez-la avec
‘;
’,
‘\g
’ ou
‘\G
’, et finissez avec entrée.
Vous pouvez exécuter un script avec :
shell> mysql db_name < script.sql > output.tab
mysql
supporte les options suivantes :
--help, -?
Affiche cette aide et quitte.
Affiche les résultats avec une tabulation comme résultat, et chaque ligne avec une nouvelle ligne. N'utilise pas l'historique.
Le dossier où les jeux de caractères sont créés. See Section 5.8.1, « Le jeu de caractères utilisé pour les données et le stockage ».
Utilise la compression avec le protocole client / serveur.
--database=db_name, -D db_name
La base de données à utiliser. C'est particulièrement
pratique dans le fichier d'options
my.cnf
.
--debug[=debug_options], -# [debug_options]
Génère un log de débogage. La chaîne
debug_options
vaut souvent
'd:t:o,file_name'
. Par défaut, la valeur
est 'd:t:o,/tmp/mysql.trace'
.
Affiche des informations de débogage lorsque le programme se termine.
--default-character-set=charset
Configure le jeu de caractères par défaut. See Section 5.8.1, « Le jeu de caractères utilisé pour les données et le stockage ».
--execute=statement, -e statement
Exécute une commande et quitte. Le résultat est au format de
l'option --batch
.
Continue même si vous recevez une erreur SQL.
--host=host_name, -h host_name
Connexion avec l'hôte indiqué.
Produit un résultat au format HTML.
Ignore les espaces après les noms de fonctions. L'effet de
cette commande est décrit dans la discussion sur
IGNORE_SPACE
de la section
Section 5.2.2, « Le mode SQL du serveur ».
Active ou désactive la possibilité d'utiliser la commande
LOCAL
pour LOAD DATA
INFILE
. Sans valeur, cette option active
LOCAL
. Elle peut être configuré avec
--local-infile=0
ou
--local-infile=1
pour explicitement activer
ou désactiver LOCAL
. Activer
LOCAL
n'a pas d'effet si le serveur ne le
supporte pas de son coté.
Les commandes nommées sont activées.
Utilisez la forme \*
uniquement, ou
utilisez les commandes nommées au début d'une ligne se
terminant par un point-virgule
(‘;
’). Depuis la version 10.9,
le client démarre avec cette option
activée par défaut. Avec l'option
-g
, le format long des commandes va
continuer à fonctionner.
Pas de rehashage automatique. Cette option fait que
mysql
se lance plus rapidement, mais vous
devez utiliser la commande rehash
si vous
voulez utiliser la completion de nom de tables.
Ne fait pas de bip, lorsqu'une erreur survient.
Les commandes nommées sont désactivées. Utilisez uniquement
la forme \*
ou bien utilisez les commandes
nommées en début de ligne, et terminez la avec un
point-virgule (‘;
’). Depuis
MySQL 3.23.22, mysql
démarre avec cette
option activée par défaut! Cependant,
même si cette avec cette option, les formats de commandes
longues fonctionneront sur la première ligne.
Désactive le système de page, et affiche directement dans la
sortie standard. Plus de détails dans la section
Section 8.3.1, « Commandes mysql
».
Désactive le fichier de sortie. Voyez l'aide interactive
(\h). Plus de détails dans la section
Section 8.3.1, « Commandes mysql
».
Ne modifie que la base par défaut. C'est pratique pour éviter les modifications dans les autres bases dans le fichier de log.
Type d'affichage. Par défaut, la variable d'environnement
ENV
vaut PAGER
. Les
pagineurs valides sont less
,
more
, cat [>
filename]
, etc. Voyez l'aide interactive
(\h
). Cette option n'est pas fonctionnelle
en mode batch. Les pagineurs ne fonctionnent qu'avec Unix.
Plus de détails dans la section
Section 8.3.1, « Commandes mysql
».
--password[=password], -p[password]
Le mot de passe utilisé lors de la connexion sur le serveur.
S'il n'est pas donné en ligne de commande, il sera demandé
interactivement. Notez que si vous utilisez la forme courte
-p
, vous ne devez pas
laisser d'espace entre l'option et le mot de passe.
Le numéro de port TCP/IP pour la connexion.
Modifie le format de l'invite de commandes
(prompt
). Par défaut, c'est
mysql>
. Les séquences spéciales sont
présentées dans la section Section 8.3.1, « Commandes mysql
».
--protocol={TCP | SOCKET | PIPE | MEMORY}
Spécifie le protocole de connexion à utiliser. Nouveau en MySQL version 4.1.
Ne met pas en cache le résultat, et l'affiche ligne par ligne. C'est plus lent pour le serveur, si le résultat est interrompu. N'utilise pas le fichier d'historique.
Ecrit les valeurs des colonnes sans les conversions de
protections. Utilisé en mode --batch
Si la connexion est perdue, essaie de se reconnecter
automatiquement au serveur, juste une fois. Pour supprimer la
reconnexion automatique, utilisez
--skip-reconnect
. Nouveau en MySQL 4.1.0.
--safe-updates, --i-am-a-dummy, -U
N'autorise que les commandes UPDATE
et
DELETE
qui utilisent des clés. Voir plus
bas pour des informations sur cette option. Vous pouvez
annuler cette option si vous l'avez dans le fichier d'option
my.cnf
en utilisant la syntaxe
--safe-updates
. Voyez la section
Section 8.3.3, « Conseils avec mysql
» pour plus d'informations sur
cette option.
Mode très silencieux.
N'écrit pas les noms de colonnes dans les résultats.
N'écrit pas les numéros de lignes dans les erreurs. Très pratique lorsque vous voulez comparer des résultats qui incluent des messages d'erreurs.
Le fichier de socket à utiliser pour la connexion.
Affichage au format de table. C'est le mode par défaut pour le mode non-batch.
Ajoute tout dans le fichier de sortie. Voyez l'aide
interactive (\h). Ne fonctionne pas en mode batch. Cette
option est détaillée dans Section 8.3.1, « Commandes mysql
».
Vide le buffer de requête après chaque requête.
--user=user_name, -u user_name
Nom d'utilisateur pour la connexion, si ce n'est pas l'utilisateur Unix courant.
Affichage plus détaillé (-v -v -v
indique
le format d'affichage de table).
Affiche la version et quitte.
Affiche le résultat d'une requête verticalement. Sans cette
option, vous pouvez aussi obtenir ce format en terminant votre
requête avec \G
.
Attend et retente si la connexion s'interrompt, au lieu de quitter.
Affiche le résultat au format XML.
Vous pouvez aussi spécifier les variables suivantes avec la
syntaxe --var=option
:
connect_timeout
Nombre de secondes avant que la connexion n'expire. Valeur par défaut : 0.
max_allowed_packet
Taille maximale du paquet de communication avec le serveur. Valeur par défaut : 16777216.
max_join_size
Limite automatique pour les commandes de jointure avec
l'option --i-am-a-dummy
. Valeur par
défaut : 1 000 000 (un million).
net_buffer_length
Buffer pour les communications TCP/IP et socket. Valeur par défaut : 16 ko.
select_limit
Limite automatique pour les commandes
SELECT
avec l'option
--i-am-a-dummy
Valeur par défaut : 1000.
Il est aussi possible de configurer les variables en utilisant
--set-variable=var_name=value
ou la syntaxe
-O var_name=value
. Cependant, cette syntaxe est
obsolète depuis MySQL 4.0.
Sous Unix, le client mysql
écrit l'historique
des requêtes dans un fichier. Par défaut, le fichier de
requêtes s'appelle .mysql_history
, et il est
créé dans votre dossier racine. Pour spécifier un fichier
différent, modifiez la variable d'environnement
MYSQL_HISTFILE
.
Si vous ne voulez pas entretenir un fichier d'historiques,
supprimez .mysql_history
s'il existe, puis
utiliser l'une des techniques suivantes :
Donnez à MYSQL_HISTFILE
la valeur de
/dev/null
. Pour que cela soit pris en
compte à chaque redémarrage, ajoutez cette ligne à votre
script de démarrage.
Faites un lien symbolique depuis
.mysql_histfile
vers
/dev/null
:
shell> ln -s /dev/null $HOME/.mysql_history
Il suffira de faire cela une seule fois.
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.