Importer la base de données vers une instance MySQL locale
Cet article fournit un guide de base pour importer une base de données vers une instance MySQL locale à partir de fichiers texte via la ligne de commande en utilisant mysqlimport
client, qui est un programme inclus dans MySQL.
Le mysqlimport
offre une interface de ligne de commande simplifiée pour le LOAD DATA
Instruction MySQL, qui lit les lignes d'un fichier texte pour les ajouter aux tables de la base de données. mysqlimport
envoie un LOAD DATA
déclaration au serveur.
Exigences
- Le
mysqlimport
programme supprime l'extension du fichier pour identifier le nom de la table, donc le nom du fichier est important. Si la table cible s'appelletest_table
, le fichier peut être nommétest_table.txt
,test_table.csv
,test_table.tab
, ou toute autre extension. - La table cible doit exister dans la table. Si vous obtenez une erreur car la table n'existe pas, assurez-vous qu'elle est créée avant d'utiliser le
mysqlimport
outil et que le nom du fichier correspond correctement au nom de la table.
Utilisation du client mysqlimport
La syntaxe du programme `mysqlimport' est la suivante :
mysqlimport [OPTIONS] DB_NAME TEXT_FILE_1 [TEXT_FILE_2 ... ]
Options utiles
Le mysqlimport
La commande prend en charge plusieurs options. Dans cette section, nous décrirons certaines des options les plus utiles.
Authentification
Le drapeau --user
ou -u
est le nom d'utilisateur MySQL qui sera utilisé pour se connecter au serveur.
Vous pouvez également ajouter le --password
ou -p
flag pour spécifier le mot de passe de l'utilisateur pour se connecter au serveur. Notez que l'utilisation de cette option nécessite que le mot de passe soit écrit dans l'invocation de la commande, ce qui est non sécurisé tel qu'il est enregistré dans le journal de l'historique des commandes. Si vous n'ajoutez pas cet indicateur, le mot de passe vous sera demandé après l'exécution de la commande.
Si l'utilisateur n'a pas besoin de mot de passe pour accéder au serveur, vous pouvez éviter que le terminal n'en demande un en utilisant le --skip-password
option.
mysqlimport -u USERNAME -password NOT_SO_SECURE_PASSWORD db_name table_name.txt
Lire les fichiers locaux
Le drapeau --local
ou -L
indique que le fichier sera trouvé sur le client. Si ce drapeau n'est pas ajouté, le fichier sera recherché sur le serveur.
mysqlimport -u USERNAME --local db_name table_name.txt
Compresser les informations
Pour compresser les informations envoyées entre le client et le serveur (si possible) utilisez le --compress
ou -C
option.
Spécifier les noms des colonnes
En utilisant les --columns
et en fournissant une liste séparée par des virgules, vous pouvez définir le nom des colonnes importées.
mysqlimport -u USERNAME --columns column1,column2,column3 --local db_name table_name.txt
Autres options
Certaines autres options courantes sont répertoriées ci-dessous :
--delete
:vide la table cible avant d'importer les nouvelles données.--lock-tables
:verrouille toutes les tables empêchant toute écriture. Cela permet que toutes les tables soient correctement synchronisées.--hostname
ou-h
:indique l'hôte où les données seront importées. La valeur par défaut estlocalhost
.--port
ou-P
:indique le port TCP/IP qui sera utilisé pour la connexion.
Conclusions
Le mysqlimport
client est vraiment utile pour importer des informations dans des tables existantes dans une instance MySQL à l'intérieur du même serveur (local) ou vers un autre serveur en utilisant le --hostname
et --port
options de manière rapide et fiable.
Les options mentionnées dans cet article vous permettront de faire une importation facile avec des critères précis.
Articles liés
Pour le guide complet des options de `mysqlimport´, vous pouvez visiter la documentation officielle de mysqlimport.