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ń.
Spis treści w artykule
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ć).
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01