Jak łatwo zaimportować wiele plików sql do bazy danych MySQL?

Mam kilka plików sqli chcę zaimportować je wszystkie na raz do bazy danych MySQL.

Przechodzę do PHPMyAdmin, wchodzę do bazy danych, klikam import, wybieram plik i importuj go. Gdy mam więcej niż kilka plików, zajmuje to dużo czasu.

Chciałbym wiedzieć, czy jest lepszy sposób na import wielu plików, coś w rodzaju jednego pliku, który będzie importować inne pliki lub podobne.

Używam WAMP i chciałbym rozwiązania, które nie wymaga instalowanie dodatkowych programów na moim komputerze.

Author: henser, 2012-01-25

7 answers

Dzięki BlackCharly, znalazłem jak to zrobić w Windows, otwórz terminal przejdź do folderu content i napisz:

copy /b *.sql all_files.sql

To łączy wszystkie pliki w jednym, dzięki czemu importowanie z PhpMyAdmin jest naprawdę szybkie]}

W Linuksie, jak mówi BlackCharly:

cat *.sql  > all_files.sql

Na koniec proszę wziąć pod uwagę komentarz @ mosh:

If all_files.sql jest już obecny, może to skutkować rekurencyjną kopią pliku na siebie bez końca! Umieść wynik w oddzielnym katalog dla bezpieczeństwa.

 74
Author: Chococroc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 11:12:06

To najprostszy sposób, jaki znalazłem.

W Windows (powershell):

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

Będziesz musiał wstawić ścieżkę do swojego WAMP - MySQL powyżej, użyłem mojej ścieżki systemowej.

W Linuksie (Bash):

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

 37
Author: StanleyD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 15:50:02
  1. Goto cmd

  2. Wpisz Wiersz polecenia C:\users\Usersname > cd [.sql tables folder path ]
    Naciśnij Enter
    Ex: C:\users\Usersname > cd E:\project\database

  3. Type command prompt
    C:\users\Usersname>[.nazwa dysku folderu sql (katalogu)]
    Naciśnij Enter
    Ex: C:\users\Usersname > E:

  4. Wpisz Wiersz polecenia dla marge all .plik sql (tabela) w jednym pliku
    kopia / b *.SQL newdatabase.sql
    Prasa Enter
    EX: E:\project\database > kopia / b *.SQL newdatabase.sql

  5. Możesz zobaczyć Scalanie wielu .sql (Plik) tabele plików w jednym pliku w folderze katalogu
    Ex: E:\project\database

 9
Author: PHP Kishan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 12:53:01

Wiem, że minęło trochę ponad dwa lata... ale szukałem sposobu, aby to zrobić, i nie byłem zbyt zadowolony z zamieszczonego rozwiązania(działa dobrze, ale chciałem trochę więcej informacji, jak import się dzieje). Podczas łączenia wszystkich plików SQL w jeden, nie otrzymasz żadnych aktualizacji postępu.

Więc szukałem odpowiedzi i pomyślałem, że może to być dobre miejsce, aby opublikować to, co znalazłem dla przyszłych ludzi szukających tej samej odpowiedzi. Oto wiersz poleceń w systemie Windows, który zaimportuje wiele plików SQL z folderu. Uruchamiasz to z wiersza poleceń w katalogu, w którym mysql.exe znajduje się.

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

Z pewnymi założonymi wartościami (jako przykład):

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

Jeśli masz dwa zestawy kopii zapasowych SQL w folderze, możesz zmienić *.sql do czegoś bardziej konkretnego (np. mydb_*.sql).

 5
Author: DragonYen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-18 16:53:13

Wprowadź powłokę mysql w ten sposób.

Mysql --host=localhost --user=username --password --database=db

Następnie użyj polecenia source i średnika, aby rozdzielić polecenia.

Source file1.sql; source file2; source file3;

 4
Author: Markus Zeller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-19 09:47:55

Zapisz ten plik jako .bat i uruchom go, zmień zmienne w nawiasie ...

@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

Jeśli jest to tylko jedna baza danych zmodyfikuj (%%~na) z nazwą bazy danych .

 1
Author: Tarek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-06 06:18:09

Najprostszym rozwiązaniem jest skopiowanie / wklejenie KAŻDEGO pliku sql w jednym.

Nie możesz dodać niektórych znaczników sql do importu plików (importowane pliki będą na twoim komputerze, nie na serwerze, i nie sądzę, że MySQL zarządza niektórymi znacznikami import do zewnętrznych plików sql).

 0
Author: BlackCharly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-25 09:23:38