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.