Importer un fichier .sql en ligne de commande

I. Présentation

Dans ce tutoriel, nous allons apprendre à importer des bases de données au format ".sql" en ligne de commande. Bien souvent, la réimportation des bases de données à partir de fichier ".sql" passe par l'utilisation de PhpMyAdmin. Mais il peut aussi être utile de savoir le faire en ligne de commande pour automatiser la tâche par exemple. On doit pour cela avoir un fichier ".sql" à disposition ainsi qu'un serveur MySQL opérationnel.

On aura donc un fichier que nous nommerons ici "db.sql" qui contiendra des commandes MySQL (DROP, CREATE, INSERT, ...). Dans notre tutoriel, on considérera qu'il est stocké dans "/home/neaj/mysql/" L'intérêt de mettre ces commandes dans un fichier ".sql" est que cela nous permet de toutes les exécuter en une seule fois.

II. Les lignes de commandes

Il existe plusieurs façon de faire mais dans tous les cas on utilise la commande "mysql".

# On peut commencer par se connecter avec notre utilisateur
mysql -u user -p
# Puis aller chercher notre fichier ".sql" (s'assurer d'avoir les droits de lecture dessus).
mysql > source /home/neaj/mysql/db.sql

On aura alors en retour les messages nous informant de la bonne ou mauvaise exécution de notre fichier ".sql"

On peut aussi faire la même chose en une seule ligne de commande, ici nous n'avons pas besoin de nous connecter au préalable sur la base de données, l'authentification et l'importation se fait sur la même ligne de commande :

mysql < /home/neaj/mysql/db.sql -u user -p

Cela peut être utile si on automatise les tâches d'importation et la commande pour les mettre dans un script par exemple. Au lieu de l'option "-p" qui nous demande le mot de passe dans la ligne suivante, on peut utiliser "--password = < mot de passe >". L'inconvénient est que le mot de passe apparait en clair dans la ligne de commande.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 523.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.