Jak za pomocą konsoli wykonać zrzut i przywrócić bazę danych MySQL

Jakiś czas temu opisano sposób w jaki można zarchiwizować bazę danych za pomocą popularnego phpMyAdmin. Zatem pora by opisać procedurę wykonania tej operacji za pomocą konsoli (na przykład za pomocą SSH). Wpis zilustrowano zrzutami ekranu spod konsoli Linuxa lecz pod Windows składnia jest identyczna.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

Zarówno do wykonania zrzutu i przywrócenia bazy potrzebne będzie login i hasło użytkownika który ma do niej dostęp oraz nazwa samej bazy. Na potrzeby wpisu użytkownik będzie miał nazwę nowyUzytkownik a bazą będzie przykladowaBaza. Do wykonania archiwum bazy wykorzystane będzie polecenie mysqldump a do jej przywrócenia: mysql. Oba z nich dostępne są domyślnie po instalacji MySqla.

Wykonanie zrzutu bazy z użyciem mysqldump

Najprostszym wariantem polecenia będzie mysqldump -u nowyUzytkownik -p przykladowaBaza > ./dump.sql które poprosi o hasło użytkownika nowyUzytkownik, a następnie wykona zrzut przykladowaBaza do pliku dump.sql w aktualnym katalogu.

Gdyby wykorzystywane były procedury składowane należy dodać parametr --routines. Zatem w tym wypadku komendą będzie mysqldump --routines -u nowyUzytkownik -p przykladowaBaza > ./dump.sql.

Typowe polecenie mysqldump

Można także zapisać plik w innym katalogu bądź pod inną nazwą. W tym celu wystarczy zmodyfikować ścieżkę i nazwę pliku jaka jest po znaku >. W razie potrzeby zapisu pliku w katalogu /usr/backup i pod nazwą 2015-04-12.sql należy wpisać: mysqldump -u nowyUzytkownik -p przykladowaBaza > /usr/backup/2015-04-12.sql.

Przywrócenie bazy ze zrzutu

Do przywrócenia bazy potrzeba wywołać komendę mysql i przekierować zawartość pliku ze zrzutem. Dysponując plikiem dump.sql można przywrócić bazę przykladowaBaza poleceniem: mysql -u nowyUzytkownik -p przykladowaBaza < ./dump.sql.

Polecenie mysql użyte do przywrócenia zawartości bazy

Plik może znajdować się w zupełnie innym katalogu, a potrzebna będzie jedynie niewielka modyfikacja ścieżki: mysql -u nowyUzytkownik -p przykladowaBaza < /usr/backup/2015-04-12.sql.

Przekazywanie hasła w poleceniu

Przekazywanie hasła w poleceniu jest złą praktyką i powinno być wykorzystywane tylko w ostateczności lub gdy nie ma na to innej rady.

Zarówno w poleceniu mysqldump i mysql używany jest parametr -p który oznacza użycie hasła. W powyższych przypadkach był wpisany bez żadnej wartości, dlatego system za każdym razem pytał o hasło. Jednakże można je przekazać jawnie pisząc je zaraz (to znaczy bez żadnego odstępu) po parametrze -p. Komendą do backupu będzie mysqldump -u nowyUzytkownik -p9rmvqx5nympfviy przykladowaBaza > ./dump.sql, a przywrócenia mysql -u nowyUzytkownik -p9rmvqx5nympfviy przykladowaBaza < ./dump.sql.

Przekazywanie hasła jako parametr