Wpis z mikrobloga

#linux #ubuntu #vps #mysql

Mam kopię całego folderu mysql, czy można z tego odzyskać poprzednie bazy danych?

Ogólnie sprawa wygląda tak. Był sobie VPS, na którym śmigała sobie aplikacja i korzystała z bazy w mysql. Pewnego dnia ktoś zmienił hasło do VPS i nie dało się tam wejść po ssh. Jedyna możliwość aby dostać się do plików to tryb rescue. W tym trybie udało mi się skopiować cały folder z mysql. Następnie dokonałem reinstalacji systemu i chciałbym postawić tę bazę na nowo. Jak to zrobić? I jak sobie poradzić z problemem barku hasła do tej bazy danych? Czy jest to jakaś przeszkoda?
  • 5
1. brak hasla do db to po prostu start mysql z --skip-grant-tables (zagooglaj co dokladnie i jak)
2. jesli podstawisz zawartosc katalogow z DB po calosci w miejsce gdzie masz czystego mysqla zainstalowanego, to masz duze szanse powodzenia.
@siemanko: tak, chociaż to co jest na dysku wcale nie musi być "poprawne" - mogłeś wyłączyć serwer w połowie zapisu. Możesz też zmienić hasło z trybu rescue: do roota przez chroot /mnt/asdf passwd albo do mysqla przez --skip-grant-tables czy coś takiego (szukaj).

Jeśli to ubuntu to zajrzyj do pliku /etc/mysql/debian.cnf - tam są dane do użytkownika który ma uprawnienia takie jak root :).
@blues: Ok, dzięki. Zaraz to spróbuję w ten sposób ogarnąć.
@venc: Niestety już poszła reinstalacja :/ Jednak próbowałem z tym chrootem, ale mysql z jakiegoś powodu nie chciał wystartować.
@elirath: I teraz mi to piszesz? :) A tak serio to już po ptokach. Teraz tylko muszę przywrócić tamtą bazę.
ak, chociaż to co jest na dysku wcale nie musi być "poprawne" - mogłeś wyłączyć serwer w połowie zapisu.


@elirath: Baza z InnoDB przetrwa niezależnie od momentu w którym jej przerwiesz (jak każda inna baza ACID).

@siemanko: Jeśli nie użyjesz tej samej wersji MySQL lub nowszej to sama podmiana /var/lib/mysql powinna wystarczyć.