Przywracanie baz danych MULTIPLE MySQL z jednego pliku w wierszu poleceń?

13

Wyeksportowałem wszystkie moje bazy danych do pliku za pomocą phpMyAdmin.

Niestety nie mam działającego phpMyAdmin w moim systemie docelowym.

Jak powinienem przywrócić je wszystkie naraz, używając jednego wiersza poleceń?

smhnaji
źródło
1
Zajrzałeś do pliku? Powinien / powinien zawierać polecenia do tworzenia i przełączania do baz danych w razie potrzeby.
Tom Regner,
Tak, bazy danych są tworzone, a następnie wybierane za pomocą USE database_namepolecenia.
smhnaji
Zatem odpowiedzi Unni i laurents są poprawne.
Tom Regner,

Odpowiedzi:

18

Dlaczego nie połączysz wszystkich plików w jeden plik i zaimportujesz / przywrócisz

mysql -u username -p < dump.sql

Utwórz jeden plik za pomocą

mysqldump -u username -p --all-databases > dump.sql
devav2
źródło
OP ma już jeden plik i musi je przywrócić, aby nie mógł ich zrzucić.
laurent
@ laurent Tak, rozumiem. Użycie mysql -u username -p < dump.sqlspowoduje załadowanie wielu baz danych MySQL.
devav2
tak, na pewno to zrobi
laurent
2
to nie działało dla mnie. mówi, że muszę wybrać bazę danych
Aryeh Armon
3

Jeśli wykonałeś kopię zapasową wielu baz danych w jednym pliku, przypuszczam, że wykonałeś kopię zapasową create databaseinstrukcji w tym samym pliku. Jeśli nie, musisz tylko dodać instrukcje create databasei use databasedo pliku w odpowiednich miejscach.

Następnie polecenie załadowania pliku do mysql to:

mysql -p < sqlfile.sql

-p to poprosić o hasło.

Możesz użyć, -u usernamejeśli potrzebujesz innego użytkownika.

Laurent
źródło
1

Polecenie mysql w celu przywrócenia pliku sql to:

mysql DATABASE_NAME < SQL_FILENAME.sql

najpierw upewnij się, że plik to sql. Jeśli kończy się rozszerzeniem gz, musisz rozpakować za pomocą polecenia:

gunzip SQL_FILE.sql.gz
Unni
źródło
1
-1. Jak powiedziałem powyżej, w pliku przechowywanych jest wiele baz danych i chcę je wszystkie przywrócić na raz.
smhnaji
czy możesz wyeksportować każdą bazę danych osobno w phpmyadmin i przywrócić ją na serwerze źródłowym? lub użyj edytorów strumieni linuksowych, takich jak sed lub awk, aby podzielić je na różne pliki.
Unni,
1
nie ma potrzeby, może zaimportować wszystkie bazy danych z jednego pliku
laurent