Skip to main content

Co to jest mysqldump i jak tego używać?

[TuT]Zmiana hasła do MySQL (Czerwiec 2026)

[TuT]Zmiana hasła do MySQL (Czerwiec 2026)
Anonim

Jako jedna z wiodących swobodnie dostępnych baz danych, MySQL jest popularnym wyborem dla różnego rodzaju aplikacji internetowych. Będąc narażonym na działanie Internetu, twoja aplikacja jest oczywiście narażona na złośliwe ataki. Jeśli twój serwer zostanie przejęty, w najlepszym razie będziesz musiał ponownie zainstalować swoją aplikację; w najgorszym wypadku możesz całkowicie stracić dane. Będziesz także w sytuacji, w której musisz przenieść bazę danych z jednego serwera na drugi.

Do czego służy mysqldump?

The mysqldump narzędzie obejmuje cię w obu tych sytuacjach. Jego podstawową funkcją jest pobranie bazy danych MySQL i "zrzutu" jej jako pliku tekstowego. Ale nie tylko plik tekstowy … plik jest zestaw instrukcji SQL. Te instrukcje, po wykonaniu, ponownie skonstruują bazę danych do dokładnego stanu, w jakim znajdowała się podczas wykonywania zrzutu.

Więc możesz użyć mysqldump aby wyeksportować bazę danych. Mogą to być na przykład kopie zapasowe lub przenoszenie bazy danych na nowy host. W każdym razie, w pewnym momencie import plik tekstowy z powrotem na serwer bazy danych MySQL. Wykona wszystkie instrukcje SQL w pliku, który odbuduje twój DB do jego pierwotnego stanu. Ta część w rzeczywistości nie korzysta z mysqldump polecenie, ale nie byłoby to możliwe bez tego narzędzia!

Dokumentacja MySQL zawiera listę innych metod tworzenia kopii zapasowych, ale wszystkie mają swoje wady:

  • Hotcopying a DB z MySQL Enterprise to świetny sposób, aby osiągnąć te kopie zapasowe … jeśli nie masz nic przeciwko metce Enterprise.
  • Kopiowanie katalogów danych DB może być trudne, jeśli przemieszczasz się pomiędzy systemami operacyjnymi, ponieważ ich miejsca docelowe będą inne.
  • Eksportowanie do rozdzielonego pliku tekstowego da ci zawartość, ale będziesz musiał sam odtworzyć strukturę. I lepiej załatw to dobrze …
  • Często można tworzyć kopie zapasowe baz danych z programów GUI, takich jak MySQL Workbench. Jest to jednak proces ręczny, tzn. Nie jest to coś, co można skryptować lub dołączyć do zadania wsadowego.

Instalowanie narzędzia mysqldump

Jeśli interesuje Cię ten artykuł, prawdopodobnie masz już zainstalowany MySQL. Jeśli tak jest, to dobra wiadomość - już ją masz mysqldump! Jeśli nie, możesz po prostu zainstalować MySQL w standardowy sposób dla swojego systemu operacyjnego.

W przypadku Windows, zapoznaj się z naszymi instrukcjami dotyczącymi instalacji MySQL na Windows 7 (proces instalacji wciąż jest bardzo podobny). Podobnie na macOS, zobacz nasze instrukcje instalacji MySQL na MacOS 10.7 (znowu starsze, ale nadal możliwe). Użytkownicy systemów Linux z systemem Ubuntu mogą użyć poniższego polecenia, aby zainstalować klienta MySQL i narzędzia:

sudo apt zainstaluj mysql-client

Wyodrębnianie zrzutu MySQL

Po zainstalowaniu możesz użyć mysqldump aby uzyskać pełną kopię zapasową bazy danych.

mysqldump -h nazwa hosta lub adres IP hosta -u nazwa użytkownika bazy danych -p nazwa bazy danych> db_backup.sql

Przerwijmy to polecenie nieco:

  • "-h": Ta flaga jest bazą danych gospodarz. Może to być pełna nazwa hosta (np. Myhost.domena.com) lub adres IP. Możesz również pozostawić to pole puste, jeśli używasz go na tym samym hoście, co serwer MySQL.
  • "-u": Jak już wspomniano, to jest twoje Nazwa Użytkownika.
  • "-p": Jeśli poprawnie zabezpieczysz instalację MySQL, będziesz potrzebować hasło połączyć. Ta flaga bez argumentów wyświetli monit o podanie hasła podczas wykonywania polecenia. Czasami warto podać hasło bezpośrednio jako argument tej flagi, na przykład w skrypcie kopii zapasowej. Ale w odpowiedzi na to pytanie nie powinieneś, ponieważ jeśli ktoś uzyskałby dostęp do twojego komputera, mógłby uzyskać to hasło w historii poleceń.
  • "> db_backup.sql": Ta ostatnia część mówi mysqldump aby skierować wszystkie swoje dane wyjściowe do pliku. Normalnie polecenie wyświetli wszystko bezpośrednio na konsoli, co oznacza, że ​​zobaczysz kilka instrukcji SQL. Zamiast tego, symbol *> * jest znakiem, aby zamiast tego wstawić wszystkie te rzeczy do nazwanego pliku tekstowego. A jeśli ten plik nie istnieje, zostanie utworzony automatycznie.

Po zakończeniu będziesz mieć plik .SQL. To tylko plik tekstowy zawierający instrukcje SQL. Możesz otworzyć go w dowolnym edytorze tekstów, aby sprawdzić zawartość. Patrząc na eksport z bazy danych WordPress, można zobaczyć, jak te pliki są połączone.

Plik podzielony jest na sekcje. Na powyższym obrazku widać pierwszą sekcję ustawiającą tabelę dla komentarzy WordPress. Druga sekcja odtwarza następnie zawartość (tj. Rekordy komentarzy), która znajdowała się w tych tabelach. Gdy przejdziesz do ponownego zaimportowania zrzutu MySQL ponownie, polecenie będzie działać poprzez plik, wykonując instrukcje i ponownie budując bazę danych w taki sposób, w jaki był. Jak to zrobić? Spójrzmy.

Importowanie pliku zrzutu MySQL

Zanim będziesz mógł to zrobić, będziesz potrzebować bazy danych, która została już utworzona, i mieć poprawną nazwę użytkownika i hasło. Powinieneś również mieć wszystkie uprawnienia do bazy danych. (Ściśle mówiąc nie potrzebujesz DOTACJA uprawnienia, ale łatwiej jest je po prostu przyznać.) Szczegóły na temat uprawnień do bazy danych można znaleźć w tym artykule.

Aby ponownie zaimportować dane, wykonaj następujące kroki:

  1. Zaloguj się do serwera MySQL za pomocą mysql dowództwo.
  2. Rodzaj użyj nazwa bazy danych po znaku zachęty, zastępując odpowiednią nazwę DB.
  3. Wchodzić źródło nazwa pliku, zastępując nazwę pliku zrzutu, który zrobiłeś wcześniej.

Kiedy skończysz, zobaczysz długą listę komunikatów informujących o wykonywaniu instrukcji SQL. Miej oko na błędy, ale jeśli masz odpowiednie uprawnienia, powinieneś być w porządku, ponieważ jest to pusta baza danych.

Po zakończeniu procesu będziesz mieć duplikat oryginalnej bazy danych. Możesz to sprawdzić, wykonując kolejny zrzut i porównując dwa wyjścia. Przyzwoity edytor tekstu będzie w stanie zrobić to za Ciebie lub dedykowane narzędzie * diff *, takie jak pokazane na poniższym obrazku:

Są tylko dwie różnice między tymi plikami, co reprezentują czerwone linie u góry i u dołu prawego paska przewijania. Pierwsza to linia zawierająca nazwę bazy danych i spodziewamy się, że będzie inna, ponieważ nazwaliśmy je inaczej. Drugim, końcowym końcem jest znacznik czasu dla pliku zrzutu. Oczekujemy też, że będzie inaczej, ponieważ odtworzyliśmy drugą bazę danych po pierwszej. W przeciwnym razie pliki są dokładnie takie same, co oznacza, że ​​bazy danych, które je wygenerowały, również są!