Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Darmowe metody naprawy uszkodzonej bazy danych MySQL

Kiedy baza danych MySQL staje się uszkodzona, możesz się zastanawiać, dlaczego baza danych została uszkodzona w pierwszej kolejności. Ten post przedstawi możliwe przyczyny uszkodzenia bazy danych przed udzieleniem odpowiedzi na pytanie:jak naprawić uszkodzoną bazę danych MySQL?

Przyczyny korupcji bazy danych MySQL

Baza danych MySQL może ulec uszkodzeniu z jednego z następujących powodów:

  • Nagłe wyłączenie serwera
  • Defekt sprzętu używanego do przechowywania i pobierania danych, takich jak podsystem dysku, kontrolery dysków, sterowniki itp.
  • Proces „mysqld” zostaje zabity podczas trwającej aktualizacji
  • Błąd oprogramowania

Określenie przyczyny uszkodzenia bazy danych może być trudne. Bez względu na przyczynę, powinieneś się martwić, jak naprawić uszkodzoną bazę danych MySQL.

Jak naprawić uszkodzoną bazę danych MySQL?

Pierwszą rzeczą, na którą musisz spojrzeć, jest wyświetlany komunikat o błędzie. Poniżej znajduje się kilka komunikatów o błędach, które możesz napotkać, gdy baza danych MySQL zostanie uszkodzona:

Błąd 144: Stół uległ awarii, a ostatnia naprawa nie powiodła się

Błąd 141: Zduplikuj unikalny klucz lub ograniczenie przy zapisie lub aktualizacji

Błąd 136: Brak miejsca w pliku indeksu

Błąd 134: Rekord został już usunięty

Błąd 126: Plik indeksu uległ awarii/niewłaściwy format pliku

Błąd: Nie można znaleźć pliku „wtlicensemanager.dll”

Jeśli chcesz wykonać naprawę bezpłatnie, masz dwie możliwości:

  1. Zrób to ręcznie.
  2. Zrób to za pomocą oprogramowania, korzystając z okresu próbnego.

Oprogramowanie do odzyskiwania bazy danych może lepiej i szybciej naprawić uszkodzoną bazę danych.

Oto jedna aplikacja, której możesz użyć do naprawy uszkodzonej bazy danych MySQL:

To narzędzie do naprawy bazy danych MySQL naprawia bazę danych utworzoną przy użyciu silników baz danych InnoDB i MyISAM MySQL. Możesz pobrać wersję demonstracyjną narzędzia do naprawy SQL, aby wyświetlić podgląd bazy danych do odzyskania przed ich zapisaniem.

Kluczowe cechy:

  • Może odzyskać bazę danych MySQL w systemach Windows i Linux.
  • Odzyskuje pliki InnoDB (.ibdata, .ibd i .frm) oraz pliki MyISAM (myd, .myi i .frm)
  • Przywraca obiekty bazy danych, takie jak tabele, właściwości tabel, typy danych, widoki, wyzwalacze itp.
  • Pozwala na selektywne odzyskiwanie komponentów bazy danych

Jak ręcznie naprawić uszkodzoną bazę danych MySQL?

W MySQL istnieją dwa typy silników pamięci masowej:InnoDB i MyISAM. Tabela InnoDB zawiera pliki FRM, IBDATA i IDB, podczas gdy tabela MyISAM zawiera pliki FRM, MYD i MYI.

Zanim przejdziemy

Oto kilka rzeczy, które należy wziąć pod uwagę przed przystąpieniem do ręcznego odzyskiwania:

  • Nie uruchamiaj ponownie serwera

Po ponownym uruchomieniu serwera serwer może przełączyć uszkodzoną bazę danych w tryb podejrzanych. Spowoduje to wyłączenie bazy danych. Może również powodować błędy podczas łączenia się z bazą danych. Powinieneś spróbować odzyskać bez ponownego uruchamiania serwera.

  • Użyj trybu pojedynczego użytkownika

Upewnij się, że jesteś jedynym użytkownikiem połączonym z bazą danych. Tryb jednego użytkownika zapewnia pełną kontrolę, eliminując ingerencję innych użytkowników.

  • Nie aktualizuj MySQL

Możesz pomyśleć o aktualizacji bazy danych MySQL, aby naprawić uszkodzone pliki. Ale tak nie jest. Aktualizacja może spowodować trwałą utratę danych.

  • Wykonaj kopię zapasową uszkodzonej bazy danych MySQL

Ważne jest, aby mieć kopię zapasową uszkodzonego pliku, ponieważ mogą wystąpić błędy, które mogą spowodować utratę danych. Nie ma gwarancji, że ręczne czynności nie wpłyną na zdrowe pliki. Dlatego bezpiecznie jest mieć kopię zapasową przed przystąpieniem do ręcznego odzyskiwania.

Aby wykonać kopię zapasową, użyj następującego polecenia:

mysqldump nazwa_bazy_danych> nazwa_bazy_danych.sql

Po prostu wpisz nazwę swojej bazy danych zamiast database_name.

Jeśli powyższe nie działa, spróbuj wykonać następujące czynności:

mysqldump –u[nazwa użytkownika] –p[hasło] [nazwa_bazy_danych]> [plik_zrzutu].sql 

Istnieje inny sposób tworzenia kopii zapasowej bazy danych:

usługa mysqld stop

cp -r /var/lib/mysql /var/lib/mysql_bkp

Teraz, gdy mamy kopię zapasową, możemy spróbować naprawić uszkodzoną bazę danych MySQL.

Jak ręcznie odzyskać bazę danych MySQL?

Naprawianie bazy danych MyISAM

Jeśli używasz mechanizmu przechowywania bazy danych MyISAM dla swojej tabeli bazy danych, możesz użyć następujących poleceń, aby naprawić tabelę:

Mysqlcheck

Jeśli serwer MySQL jest uruchomiony, uruchom następujące polecenie mysqlcheck, aby naprawić tabelę:

mysqlcheck -r [nazwa_bazy_danych]

Pamiętaj, aby zastąpić „database_name” nazwą swojej bazy danych.

Myisamchk

Jeśli serwer nie działa, spróbuj naprawić tabelę bazy danych za pomocą polecenia myisamchk:

Uwaga: Przed uruchomieniem tego polecenia upewnij się, że na serwerze nie ma otwartych żadnych tabel.

myisamchk nazwa_tabeli

Napraw nazwę tabeli z nazwą tabeli w Twoim przypadku. To polecenie automatycznie naprawia Twój stół.

Aby ponownie uruchomić serwer, wpisz następujące polecenie:

usługa mysqld start

Wymuś odzyskiwanie InnoDB

Będziesz musiał wykonać wymuszenie odzyskiwania InnoDB, aby wyodrębnić dane z uszkodzonej tabeli bazy danych InnoDB.

Krok 1: Najpierw musisz otworzyć plik my.cnf.

W tym pliku zlokalizuj sekcję [mysqld].

Dodaj następujący wiersz do tej sekcji:

innodb_force_recovery=1

Teraz zapisz plik konfiguracyjny i zrestartuj serwer MySQL. Możesz ustawić wartość innodb_force_recovery od 1 do 6. Jednak wartość powyżej 4 nie jest zalecana, ponieważ może uszkodzić dane.

Krok 2: Zrzuć dane tabeli do nowego pliku.

Aby to zrobić, użyj następującego polecenia:

mysqldump –u użytkownik –p nazwa_bazy_danych nazwa_tabeli> single_dbtable_dump.sql

Krok 3: Usuń uszkodzoną tabelę z bazy danych.

mysql –u użytkownik –p –execute=”DROP TABLE nazwa_bazy.nazwa_tabeli”

Krok 4: Przywróć tabelę z pliku zrzutu.

mysql –u użytkownik –p

Krok 5: Po naprawieniu plików wyłącz tryb przywracania siły za pomocą następującego polecenia:

#innodb_force_recovery=…

Teraz możesz ponownie uruchomić usługę MySQL w normalnym trybie.

Mamy nadzieję, że powyższe metody pomogą naprawić uszkodzoną bazę danych MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przekazywanie tablicy do zapytania za pomocą klauzuli WHERE

  2. Numeryczne sortowanie pola varchar w MySQL

  3. Wyłącz ONLY_FULL_GROUP_BY

  4. Nie można utworzyć modelu danych encji — przy użyciu MySql i EF6

  5. jQuery UI Sortable, a następnie zapisz kolejność w bazie danych