Jak przerzucić całą bazę MySQL na inny VPS

Tagi: #<Tag:0x00007f62b2557f50> #<Tag:0x00007f62b2557e88> #<Tag:0x00007f62b2557ca8> #<Tag:0x00007f62b2557b68>

Taki proces przydaje się jeśli chcemy przenieść cały nasz dobytek danych np. na VPS z oferty KVM https://lvlup.pro/oferta/vps-kvm-game-pro/ czy OpenVZ https://lvlup.pro/oferta/vps/

Proces ten działa zarówno dla MySQL oraz MariaDB.
Powinno działać na Debianie 7 i Ubuntu 14.04 oraz nowszych.
Ten proces nie zadziała na CentOS gdyż tam wygląda to trochę inaczej.

Robimy kopię pliku z danymi do logowania

To istotne. Zróbmy kopię tego pliku:
/etc/mysql/debian.cnf

Możemy też zapisać sobie same hasło w nim zawarte.
Jeśli tego nie zrobimy to potem czeka nas więcej pracy lub nie będziemy mogli restartować bazy i będzie trochę błędów.

Zrzucamy wszystkie bazy danych do pliku

Na obecnie używanym VPS gdzie mamy dane uruchamiamy komendę tworzenia zrzutu spod konta root która od razu użyje gotowych danych do logowania do bazy.
Na końcu komendy modyfikujemy ścieżkę gdzie trafi plik jeśli mamy taką potrzebę.
Proces ten dla większości baz nie powinien potrwać dłużej niż 5min, dla dużych baz np. z LogBlock może to być nawet więcej niż godzina.

mysqldump --defaults-file=/etc/mysql/debian.cnf --routines --flush-privileges --all-databases > /root/dump.sql

Przenosimy dump na drugi VPS

Przywracamy dump na nowym VPS

Wchodzimy na koncie root do katalogu z naszym plikiem zrzutu oraz odpalamy:

mysql --defaults-file=/etc/mysql/debian.cnf < dump.sql

To może potrwać dłużej niż tworzenie zrzutu

Modyfikujemy konfigurację debiana dla MySQL

Przywracamy kopię pliku /etc/mysql/debian.cnf na nowym VPS lub modyfikujemy wpisane tam hasło.
Teraz możemy korzystać z bazy dokładnie tak samo jak na starym VPS gdyż zrobiliśmy lustrzaną kopię wraz z użytkownikami baz.

1lajk

Dla małej ilości danych można zrobić klasyczny export i import danych z PMA :smiley:

O ile ma się PhpMyAdmin to tak :wink:

Jak przenoszę mysql na inny serwer do mariadb, która będzie działać w dockerze to potrzebuję też przenieść konfigurację z pliku /etc/mysql/debian.cnf ?