Czy można przywrócić bazę danych MySQL z fizycznych plików bazy danych? Mam katalog zawierający następujące typy plików:
client.frm
client.MYD
client.MYI
ale na około 20 kolejnych stolików.
Zwykle używam mysqldump lub podobnego narzędzia, aby uzyskać wszystko w 1 pliku SQL, więc jaki jest sposób radzenia sobie z tego typu plikami?
Odpowiedzi:
Tabela MySQL MyISAM to połączenie trzech plików:
Powinieneś być w stanie przywrócić, kopiując je do folderu bazy danych (w systemie Linux domyślna lokalizacja to
/var/lib/mysql/
)Powinieneś to zrobić, gdy serwer nie działa.
źródło
mysql
użytkownik uruchamiającymysqld
proces nie mógł uzyskać do nich dostępu. Wykonanie achmod -R mysql:mysql .
w katalogu danych mysql jest szybkie i łatwe, ale zastanowienie się wcześniej, dlaczego wszystkie moje bazy danych resoterd wydawały się nie mieć tabel, zajęło trochę więcej czasu.chown
skopiować skopiowane pliki, takie jak:sudo chown -R mysql:mysql /var/lib/mysql
Z odpowiedzi @Vicent, już przywracam bazę danych MySQL, jak poniżej:
Krok 1. Zamknij serwer MySQL
Krok 2. Skopiuj bazę danych do folderu bazy danych (w Linuksie domyślna lokalizacja to / var / lib / mysql). Zachowaj tę samą nazwę bazy danych i tę samą nazwę bazy danych w trybie mysql.
Krok 3: Zmień własny i zmień tryb folderu:
Krok 4: Skopiuj ibdata1 do folderu bazy danych
Krok 5: skopiuj pliki ib_logfile0 i ib_logfile1 do folderu bazy danych.
Pamiętaj, aby zmienić własne i zmienić katalog główny tych plików:
lub
Krok 6 (opcjonalnie): Moja witryna ma konfigurację do przechowywania plików w określonej lokalizacji, a następnie dokładnie kopiuję je do odpowiedniej lokalizacji.
Krok 7: Uruchom serwer MySQL. Wszystko wraca i cieszy się tym.
To jest to.
Zobacz więcej informacji na: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
źródło
Jeśli przywracasz folder, nie zapomnij zmienić plików na mysql: mysql, w
chown -R mysql:mysql /var/lib/mysql-data
przeciwnym razie pojawią się błędy podczas próby usunięcia bazy danych lub dodania nowej kolumny itp.
i zrestartuj MySQL
źródło
Mam ten sam problem, ale nie udało mi się pomyślnie odzyskać bazy danych w oparciu o powyższe instrukcje.
Udało mi się odzyskać foldery bazy danych mysql tylko z mojego systemu operacyjnego Ubuntu. Mój problem polega na tym, jak odzyskać moją bazę danych za pomocą tych nieczytelnych folderów danych mysql. Wróciłem więc do systemu operacyjnego win7 w środowisku programistycznym.
* UWAGA Mam istniejący serwer bazy danych działający w systemie win7 i potrzebuję tylko kilku plików bazy danych do odzyskania z odzyskanych plików. Aby pomyślnie odzyskać pliki bazy danych z systemu Ubuntu, muszę świeżo zainstalować serwer bazy danych mysql (ta sama wersja z systemu Ubuntu w moim systemie operacyjnym win7), aby odzyskać wszystko ze starego serwera bazy danych.
Stwórz kolejny nowy serwer bazy danych mysql w tej samej wersji z odzyskanych plików.
Zatrzymaj serwer mysql
skopiuj odzyskany folder i wklej do (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data) baza danych mysql jest przechowywana.
skopiuj plik ibdata1 znajdujący się w folderze instalacyjnym linux mysql i wklej go do (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Po prostu nadpisz istniejącą lub wykonaj kopię zapasową przed wymianą.
uruchom serwer mysql i sprawdź, czy udało Ci się odzyskać pliki bazy danych.
Aby skorzystać z odzyskanej bazy danych na moim aktualnie używanym serwerze mysql, po prostu wyeksportuj odzyskaną bazę danych i zaimportuj ją do mojego istniejącego serwera mysql.
Mam nadzieję, że to pomoże, ponieważ nic innego nie działało dla mnie.
źródło
Z MySql 5.1 (Win7). Aby odtworzyć DB (InnoDbs), podmieniłem całą zawartość następujących katalogów (parametry my.ini):
Następnie uruchomiłem usługę MySql i wszystko działa dobrze.
źródło
Tak to jest! Po prostu dodaj je do folderu bazy danych (w zależności od systemu operacyjnego) i uruchom polecenie, takie jak „Uprawnienia do naprawy MySQL”. Spowoduje to ponowne zapisanie bazy danych. Zobacz też, że odpowiednie uprawnienia są ustawione również dla plików.
źródło
Kiedyś skopiowałem te pliki do folderu przechowywania bazy danych dla działającej bazy danych mysql, uruchomiłem bazę danych i czekałem, aż „naprawi” pliki, a następnie rozpakowałem je za pomocą mysqldump.
źródło
W moim przypadku po prostu usunięcie tc.log w / var / lib / mysql wystarczyło, aby ponownie uruchomić mariadb / mysql.
źródło