Linux: backup bazy danych MySQL

Najczęściej backup bazy danych robimy z wykorzystaniem skryptu phpMyAdmin. Choć to rozwiązanie jest poprawne, to niekoniecznie szybkie, zwłaszcza, gdy mamy do czynienia z większymi bazami danych. Backup bazy danych MySQL można też wykonać w dużo prostszy sposób, ale potrzebny do tego jest dostęp do shella.

Najprostszym sposobem jest wykonanie komendy według schematu:

1
mysqldump -u [user] -p [database_name] > [backupfile].dump

Przykładowo:

1
mysqldump -u sqluser -p sqldatabase > backup.dump

Po jej wykonaniu zostaniemy poproszeni o hasło użytkownika sqluser, który powinien mieć dostęp do bazy sqldatabase. Po podaniu poprawnego hasła, zrzut bazy danych znajdzie się w odpowiednim pliku: backup.dump.

Możemy też użyć polecenia, które zoptymalizuje zrzut bazy danych i doda do nich odpowiednie komendy SQL, które usuną istniejące bazy danych i zastąpią je tymi z naszego backupu, przy przywracaniu bazy danych. W tym celu należy użyć komendy według schematu:

1
mysqldump --opt -u [user] -p [database_name] > [backup_file].dump

Możemy także dokonać kompresji naszego backupu wykonując polecenie:

1
mysqldump --opt -u [user] -p [database_name] | gzip > [backup_file].dump.gz

Mając zrzut bazy danych możemy go w łatwy sposób odtworzyć w naszej bazie danych. phpMyAdmin przeważnie ma ograniczenia co do wielkości wgrywanego pliku, w przypadku przywracania backupu za pomocą konsoli ten problem nam odpada. W tym celu wykonamy następujące polecenie:

1
mysql -u [user] -p [database_name] < [backup_file].dump

Leave a Comment

5 × one =