Wprawdzie zazwyczaj do operacji związanych z kopią zapasową MySQL śmiało można korzystać z phpMyAdmin, to czasem może być konieczne skorzystanie z linii poleceń.

MySQL: eksport i import bazy danych

Dlatego dziś postaram się Wam pokazać, jak w prosty sposób można wykonać podstawowe operacje związane z tworzeniem (i odtwarzaniem) kopii zapasowej baz(y) danych korzystając z linii komend – przyda się nie tylko w skryptach.

Tworzenie kopii zapasowej (eksport) bazy danych

W tym celu wykonania kopii konkretnej bazy korzystamy z polecenia:

mysqldump -u nazwa_użytkownika -p nazwa_bazy > backup.sql

Jeśli chcemy zrobić kopię wszystkich baz lekko modyfikujemy polecenie:

mysqldump -u nazwa_użytkownika -p --all-databases > backup.sql

Przywracanie bazy z kopii zapasowej (import)

Jeśli chcemy przywrócić/zaimportować bazę danych wystarczy skorzystać z polecenia:

mysql -u nazwa_użytkownika -p nazwa_bazy < backup.sql

Adres serwera bazy danych (host)

Domyślnie wszystkie operacje wykonywane są na maszynie lokalnej, czyli „localhost” (-h localhost), ale nic nie stoi na przeszkodzie by wykonać operacje na zdanym serwerze:

mysqldump -u nazwa_użytkownika -h nazwa_hosta_lub_adres_ip -p nazwa_bazy > backup.sql

mysql -h localhost -u nazwa_użytkownika -p nazwa_bazy < backup.sql

Hasło użytkownika

Jeśli pojawi się konieczność podania hasła użytkownika w poleceniu (np. w skrypcie) wystarczy uzupełnić parametr/opcję „-p”:

-phasło

Czyli:

mysqldump -h nazwa_hosta_lub_adres_ip -u nazwa_użytkownika -phasło nazwa_bazy > backup.sql

mysql -h nazwa_hosta_lub_adres_ip -u nazwa_użytkownika -phasło nazwa_bazy < backup.sql

Zwracam uwagę na brak spacji między „-p” a hasłem.

Dedykowany użytkownik

Jeśli zamierzacie wykonywać kopie zapasowe z pomocą skryptów, to warto stworzyć nowego użytkownika, który będzie miał tylko niezbędne uprawnienia.

Użytkownik do tworzenia kopii zapasowych

Wymagane uprawnienia:

SELECT, FILE, SHOW VIEW, SUPER, RELOAD, SHOW DATABASES, LOCK TABLES

Użytkownik do tworzenia i przywracania kopii zapasowych

Wymagane uprawnienia:

SELECT, INSERT, FILE, CREATE, ALTER, INDEX, DROP, SHOW VIEW, SUPER RELOAD, SHUTDOWN, SHOW DATABASES, LOCK TABLES

Tworzenie nowego użytkownika

Nowego użytkownika można utworzyć za pomocą phpMyAdmin, lub za pośrednictwem konsoli:

sudo mysql -uroot -p

GRANT [UPRAWNIENIA] ON *.* TO 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';

flush privileges;

quit

Przykładowa komenda:

GRANT SELECT, FILE, SHOW VIEW, SUPER, RELOAD, SHOW DATABASES, LOCK TABLES ON *.* TO 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';

Tak skonfigurowany użytkownik będzie mógł odczytywać bazy danych (tworzyć kopie), ale nie będzie mógł ich zapisywać (np. przywracać).

(!) Zgłoś błąd na stronie
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO WebInsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Napisz komentarz
wipl_napisz-komentarz_01
Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.