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
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk