8 MySQL Scripts clients et utilitaires
Manuel de Référence MySQL 4.1 : Version Française
. Présentation des scripts serveurs et utilitaires . myisampack , le générateur de tables MySQL compressées en lecture seule ->mysql , l'outil en ligne de commande . mysqladmin , administration d'un serveur MySQL . mysqlbinlog , Exécuter des requêtes dans le log binaire . mysqlcc , MySQL Control Center . Utiliser mysqlcheck pour l'entretien et la réparation . mysqldump , sauvegarde des structures de tables et les données . mysqlhotcopy , copier les bases et tables MySQL . mysqlimport , importer des données depuis des fichiers texte . Afficher les bases, tables et colonnes . perror , expliquer les codes d'erreurs . L'utilitaire de remplacement de chaînes replace
|
8.3 mysql , l'outil en ligne de commande
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 :
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.
-
--batch
,
_B
-
Affiche les résultats avec une tabulation comme résultat, et chaque ligne
avec une nouvelle ligne. N'utilise pas l'historique.
-
--character-sets-dir=path
-
Le dossier où les jeux de caractères sont créés.
Le jeu de caractères utilisé pour les données et le stockage .
-
--compress
,
_C
-
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'
.
-
--debug-info
,
-T
-
Affiche des informations de débogage lorsque le programme se termine.
-
--default-character-set=charset
-
Configure le jeu de caractères par défaut.
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
.
-
--force
,
f
-
Continue même si vous recevez une erreur SQL.
-
--host=host_name
,
-h host_name
-
Connexion avec l'hôte indiqué.
-
--html
,
H
-
Produit un résultat au format HTML.
-
--ignore-space
,
i
-
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 Le mode SQL du serveur .
-
--local-infile[={0|1}]
-
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é.
-
--named-commands
,
-G
-
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.
-
--no-auto-rehash
,
-A
-
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.
-
--no-beep
,
-b
-
Ne fait pas de bip, lorsqu'une erreur survient.
-
--no-named-commands
,
-g
-
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.
-
--no-pager
-
Désactive le système de page, et affiche directement dans la sortie standard.
Plus de détails dans la section Commandes
mysql
.
-
--no-tee
-
Désactive le fichier de sortie. Voyez l'aide interactive (\h).
Plus de détails dans la section Commandes
mysql
.
-
--one-database
,
O
-
Ne modifie que la base par défaut. C'est pratique pour éviter les modifications
dans les autres bases dans le fichier de log.
-
--pager[=command]
-
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 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.
-
--port=port_num
,
-P port_num
-
Le numéro de port TCP/IP pour la connexion.
-
--prompt=format_str
-
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 Commandes
mysql
.
-
--protocol={TCP | SOCKET | PIPE | MEMORY}
-
Spécifie le protocole de connexion à utiliser. Nouveau en MySQL version 4.1.
-
--quick
,
-q
-
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.
-
--raw
,
-r
-
Ecrit les valeurs des colonnes sans les conversions de protections. Utilisé en
mode
--batch
-
--reconnect
-
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 Conseils
mysql
pour plus d'informations sur
cette option.
-
--silent
,
-s
-
Mode très silencieux.
-
----skip-column-names
,
-N
-
N'écrit pas les noms de colonnes dans les résultats.
-
--skip-line-numbers
,
-L
-
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.
-
--socket=path
,
-S path
-
Le fichier de socket à utiliser pour la connexion.
-
--table
,
-t
-
Affichage au format de table. C'est le mode par défaut pour le mode non-batch.
-
--tee=file_name
-
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
Commandes
mysql
.
-
--unbuffered
,
-n
-
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.
-
--verbose
,
-v
-
Affichage plus détaillé (
-v -v -v
indique le format d'affichage de table).
-
--version
,
-V
-
Affiche la version et quitte.
-
--vertical
,
-E
-
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
.
-
--wait
,
-w
-
Attend et retente si la connexion s'interrompt, au lieu de quitter.
-
--xml
,
-X
-
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.
Sommaire :
|