Aby eksportować lub importować za pomocą MySQL, zacznij od zalogowania się na swój serwer, najlepiej za pomocą sudo
dostęp (root).
Eksportowanie z MySQL
Najlepszym narzędziem do eksportowania bazy danych MySQL do pliku tekstowego jest mysqldump
.
Aby użyć mysqldump
, musisz znać dane logowania odpowiedniego użytkownika MySQL
który ma niezbędne uprawnienia do wyeksportowania danej bazy danych.
Mając te informacje pod ręką, wprowadź mysqldump
polecenie z odpowiednimi flagami i opcjami:
$ mysqldump -u my_username -p database_name > output_file_path
Używane opcje to:
-u
flaga wskazuje, żenazwa użytkownika
MySQL nastąpi.-p
flaga wskazuje, że powinniśmy zostać poproszeni o podaniehasła
powiązane z powyższąnazwą użytkownika
.nazwa_bazy
to oczywiście dokładna nazwa bazy danych do wyeksportowania.> symbol to dyrektywa uniksowa dla
STDOUT
, co umożliwia poleceniom Uniksa wyprowadzanie wyników tekstowych wydanego polecenia do innej lokalizacji. W tym przypadku tą lokalizacją wyjściową jest ścieżka pliku określona przezścieżka_pliku_wyjściowego
.
Uwaga:ogólnie zaleca się wprowadzenie pełnej ścieżki i nazwy pliku dla ścieżka_pliku_wyjściowego
, więc wynikowy plik jest generowany dokładnie tam, gdzie chcesz.
Na przykład, aby wyeksportować książki
jako book_admin
użytkownika do ~/backup/bazy danych
katalogu, możemy użyć następującego polecenia:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Po wprowadzeniu naszego hasła po wyświetleniu monitu powyżej, to polecenie tworzy nasz plik kopii zapasowej z .sql
przyrostek (który jest całkowicie opcjonalny, ale zalecany) w odpowiednim katalogu.
Domyślnie mysqldump
nie zapisz komendy, które próbują zmodyfikować istnienie rzeczywistej bazy danych. Zamiast tego domyślnie tylko rzeczywiste tabele
(i ich odpowiednie dane) są zapisywane i dlatego zostaną przygotowane do późniejszego importu za pomocą tego pliku. Jeśli potrzebujesz możliwości wyeksportowania (i późniejszego odtworzenia) jeszcze jednej bazy danych, przeczytaj --databases
flaga w oficjalnej dokumentacji.
Importowanie do MySQL
Teraz, gdy nauczyłeś się eksportować kopię zapasową bazy danych MySQL, omówimy, jak odwrócić ten proces i importować kopia zapasowa do istniejącej bazy danych.
Jak możesz sobie wyobrazić, komplement mysqldump
polecenie używane do eksportu, istnieje podobny mysqlimport
polecenie do importowania.
W większości przypadków importowanie to tylko kwestia przekazania praktycznie identycznego opcje do mysqlimport
Komenda. Aby zaimportować nasz zapisany plik books.sql
plik utworzony wcześniej, użylibyśmy wielu takich samych flag i bardzo tej samej składni.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Tak jak poprzednio, -u
i -p
do uwierzytelnienia wymagane są flagi, po których następuje nazwa bazy danych
do zaimportowania do (w tym przypadku używamy innej, produkcyjnej bazy danych), a następnie określenie w pełni kwalifikowanej ścieżki do pliku zrzutu SQL, który zawiera nasze dane importu, ~/backup/database/books.sql . Warto również zauważyć, że
mysqlimport
nie wymaga <
lub > (STDIN/STDOUT) symbole używane z
mysqldump
.
Dzięki temu nauczyłeś się zarówno eksportować / tworzyć kopie zapasowe istniejącej bazy danych, jak i importować / przywracać te dane do tej samej lub nawet innej bazy danych.