web-dev-qa-db-fra.com

Comment importer facilement plusieurs fichiers SQL dans une base de données MySQL?

J'ai plusieurs fichiers sql et je veux importer tous simultanément dans une base de données MySQL.

Je vais à PHPMyAdmin, accéder à la base de données, cliquez sur import, sélectionnez un fichier et importez-le. Lorsque j'ai plusieurs fichiers, cela prend beaucoup de temps.

Je voudrais savoir s'il existe un meilleur moyen d'importer plusieurs fichiers, quelque chose comme un fichier qui importera les autres fichiers ou similaire.

J'utilise WAMP et j'aimerais une solution qui ne nécessite pas l'installation de programmes supplémentaires sur mon ordinateur.

42
Chococroc

Merci BlackCharly, j'ai trouvé comment faire sous Windows, ouvrir un terminal, aller dans le dossier de contenu et écrire:

copy /b *.sql all_files.sql

Ceci concate tous les fichiers en un seul, ce qui rend très rapide l’importation avec PhpMyAdmin

Comme le dit BlackCharly sous Linux,

cat *.sql  > all_files.sql

Dernier point mais non le moindre, veuillez prendre en compte le commentaire @mosh: 

Si all_files.sql est déjà présent, cela peut entraîner une copie récursive du fichier sur lui-même sans fin! Mettez le résultat dans un .__ séparé. répertoire pour être en sécurité.

84
Chococroc

C'est le moyen le plus simple que j'ai trouvé.

Sous Windows (powershell):

cat *.sql | C:\wamp64\bin\mysql\mysql5.7.21\bin\mysql.exe -u user -p database

Vous devrez insérer le chemin d'accès à votre WAMP - MySQL ci-dessus, j'ai utilisé mon chemin d'accès système.

Sous Linux (Bash):

cat *.sql | mysql -u user -p database

38
StanleyD
  1. Goto cmd

  2. Tapez la commande Invite C:\users\Usersname> cd [chemin du dossier des tables .sql].
    Appuyez sur Entrée
    Ex: C:\utilisateurs\nom d'utilisateur> cd E:\projet\base de données

  3. Tapez l'invite de commande
    C:\users\Usersname> [nom du lecteur (répertoire) du dossier. Sql]
    Appuyez sur Entrée
    Ex: C:\users\Usersname> E:

  4. Tapez la commande Invite pour la marge de tous les fichiers .sql (table) dans un seul fichier.
    copy/b * .sql newdatabase.sql
    Appuyez sur Entrée
    EX: E:\projet\base de données> copier/b * .sql newdatabase.sql

  5. Vous pouvez voir Fusionner plusieurs fichiers .sql (fichier) dans un seul fichier dans votre dossier de répertoires.
    Ex: E:\project\database

9
PHP Kishan

Je sais que cela fait un peu plus de deux ans ... mais je cherchais un moyen de le faire et je n'étais pas très heureux de la solution proposée (cela fonctionne bien, mais je voulais un peu plus d'informations au moment de l'importation) . Lorsque vous combinez tous les fichiers SQL en un seul fichier, vous ne recevez aucune sorte de mise à jour de progression. 

J'ai donc continué à chercher une réponse et j'ai pensé que ce serait un bon endroit pour publier ce que j'ai trouvé pour les futurs utilisateurs à la recherche de la même réponse. Voici une ligne de commande sous Windows permettant d'importer plusieurs fichiers SQL à partir d'un dossier. Vous l’exécutez à partir de la ligne de commande dans le répertoire où se trouve mysql.exe. 

for /f %f in ('dir /b <dir>\<mask>') do mysql --user=<user> --password=<password> <dbname> < <dir>\%f

Avec quelques valeurs supposées (à titre d'exemple):

for /f %f in ('dir /b c:\sqlbackup\*.sql') do mysql --user=mylogin --password=mypass mydb < c:\sqlbackup\%f

Si vous avez deux jeux de sauvegardes SQL dans le dossier, vous pouvez remplacer le * .sql par quelque chose de plus spécifique (comme mydb _ *. Sql).

5
DragonYen

Entrez le shell mysql comme ceci.

mysql --Host = localhost --user = nom d'utilisateur --password --database = db

Ensuite, utilisez la commande source et un point-virgule pour séparer les commandes.

source file1.sql; fichier source2; fichier source3;

4
Markus Zeller

Enregistrez ce fichier au format .bat et exécutez-le, modifiez les variables entre parenthèses ...

@echo off
title Mysql Import Script
cd (Folder Name)
 for %%a in (*) do (
     echo Importing File  : %%a 
     mysql -u(username) -p(password)  %%~na < %%a
)
pause

s'il ne s'agit que d'une base de données, modifiez (%% ~ na) avec le nom de la base.

2
Tarek

La solution la plus simple consiste à copier/coller tous les fichiers SQL en un.

Vous ne pouvez pas ajouter de sql markup pour l’importation de fichiers (les fichiers importés seront dans votre ordinateur, pas sur le serveur, et je ne pense pas que MySQL gère certains import de balisage pour les fichiers SQL externes) .

0
BlackCharly

Il suffit de taper la commande ci-dessous sur votre commande Invite et il liera tous les fichiers SQL en un seul fichier SQL,

c:/xampp/mysql/bin/sql/ type *.sql > OneFile.sql;
0
Ajay Singh