| 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.10 mysqlimport , importer des données depuis des fichiers texte      
 
mysqlimport
  fournit une interface en ligne de commande à la 
commande SQL  
LOAD DATA INFILE
 . La plupart des options de  
mysqlimport
 
correspondent directement aux mêmes options de  
LOAD DATA INFILE
 .
 Syntaxe de 
LOAD DATA INFILE
 .
mysqlimport
  est appelé comme ceci : Pour chaque fichier texte indiqué dans la ligne de commande, 
 
mysqlimport
  supprime toute extension du nom du fichier, et utilise
le résultat pour déterminer le nom de la table qui va recevoir 
le contenu du fichier. Par exemple, pour des fichiers appelés
 
patient.txt
 ,  
patient.text
  et  
patient
  seront
tous importés dans la table  
patient
 . 
mysqlimport
  supporte les options suivantes :| 
shell> mysqlimport [options] database textfile1 [textfile2 ...]
 | 
 
Voici un exemple d'utilisation de  
mysqlimport
  :
--help
, 
-?
      Affiche le message d'aide et quitte.
      
--columns=column_list
, 
-c column_list
      Cette option prend une liste de noms de colonnes, séparés par des virgules.
Ce champs est utilisé pour créer une commande  
LOAD DATA INFILE
  correcte,
qui sera alors passée à MySQL.
      
--compress
, 
-C
      Compresse toutes les informations entre le client et le serveur, si c'est possible.
      
--debug[=debug_options]
, 
-# [debug_options]
      Active le débogage. la valeur de  
debug_options
  est souvent : 
 
'd:t:o,file_name'
 .
      
--delete
, 
-D
      Vide la table avant d'importer le fichier texte.
      
--fields-terminated-by=...
      
      
--fields-enclosed-by=...
      
      
--fields-optionally-enclosed-by=...
      
      
--fields-escaped-by=...
      
      
--lines-terminated-by=...
      Ces options ont la même signification que les clauses correspondantes de
 
LOAD DATA INFILE
 .  Syntaxe de 
LOAD DATA INFILE
 .
      
--force
, 
-f
      Ignore les erreurs. Par exemple, si une table n'existe pas pour un fichier
texte,  
mysqlimport
  va continuer de traiter les autres fichiers.
Sans  
--force
 ,  
mysqlimport
  se termine dès qu'une erreur survient.
      
--host=host_name
, 
-h host_name
      Importe les données sur le serveur MySQL, avec l'hôte spécifié. La
valeur par défaut est  
localhost
 .
      
--ignore
, 
-i
      Voir la description de  
--replace
 .
      
--ignore-lines=n
      Ignore les  
n
  premières lignes du fichier de données.
      
--local
, 
-L
      Lit le fichier d'entrée dans le client. Par défaut, les fichiers textes sont
supposés être lus par le serveur, si vous vous connectez à 
 
localhost
  (qui l'hôte par défaut).
      
--lock-tables
, 
-l
      Verrouille  
toutes
  les tables en écriture avant de ne traiter les fichiers
textes. Cela assure que toutes les tables sont synchronisée sur le serveur.
      
--password[=password]
, 
-p[password]
      Le mot de passe à utiliser lors de la connexion au serveur. Notez que si
vous utilisez l'option courte ( 
-p
 ), vous  
ne pouvez pas
  laisser d'espace
entre l'option est le mot de passe. Si vous 
ne spécifiez pas le mot de passe avec l'option, 
 
mysqlimport
  va vous demander le mot de passe en ligne.
      
--port=port_num
, 
-P port_num
      Le port TCP/IP utilisé avec l'hôte. Cela sert pour les connexions à des hôtes
qui ne sont pas  
localhost
 , pour lequel la socket Unix est utilisée.
      
--protocol={TCP | SOCKET | PIPE | MEMORY}
      Spécifie le protocole à utiliser pour se connecter. Nouveau en MySQL version 4.1.
      
--replace
, 
-r
      Les options  
--replace
  et  
--ignore
  contrôles la gestion des lignes lues
envers les lignes qui existent déjà sur le serveur. Si vous spécifiez l'option
 
--replace
 , les nouvelles lignes remplaceront les lignes existantes. 
Si vous spécifiez  
--ignore
 , les lignes qui sont en double dans une table
qui dispose d'une colonne de type unique. Si vous ne spécifiez pas ces options,
une erreur surviendra lorsqu'une clé en double sera trouvée, et la lecture du reste du 
fichier sera annulé.
      
 --silent
, 
-s
      Mode silencieux. N'affiche que les erreurs qui surviennent.
      
--socket=path
, 
-S path
      Le fichier de socket à utiliser lors de la connexion à  
localhost
  (qui
est l'hôte par défaut).
      
--user=user_name
, 
-u user_name
      Le nom de l'utilisateur MySQL à utiliser lors de la connexion au serveur MySQL.
La valeur par défaut est celui de votre utilisateur Unix.
      
--verbose
, 
-v
      Mode détaillé. Affiche bien plus d'informations sur les actions du programme.
      
--verbose
, 
-v
      Affiche la version et quitte.      | 
$ mysql --versionmysql  Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686)
 $ uname -a
 Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown
 $ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
 $ ed
 a
 100     Max Sydow
 101     Count Dracula
 .
 w imptest.txt
 32
 q
 $ od -c imptest.txt
 0000000   1   0   0  \t   M   a   x       S   y   d   o   w  \n   1   0
 0000020   1  \t   C   o   u   n   t       D   r   a   c   u   l   a  \n
 0000040
 $ mysqlimport --local test imptest.txt
 test.imptest: Records: 2  Deleted: 0  Skipped: 0  Warnings: 0
 $ mysql -e 'SELECT * FROM imptest' test
 +------+---------------+
 | id   | n             |
 +------+---------------+
 |  100 | Max Sydow     |
 |  101 | Count Dracula |
 +------+---------------+
 | 
 |