baza de date MySQL este în scădere. Se întâmplă oricui? Site-uri Motoare în același timp blestemau cuvintele teribile în roșu în termen de aproximativ o masă lipsă. Dar nu atât de înfricoșător. Baza de date pe care și a stabilit astfel încât toate lucrurile lor de back-rupere trudă nu au fuzionat în Marele Nimic dintr-o eroare de înregistrare a unui fișier sau doar o pană de curent. Cel mai bun mod de a le repara și de a recupera datele sunt, IMHO, un utilitar de linie de comandă - myisamchk. Este o parte a oricărei instalații din fabrică a MySQL, și funcționează cu tipul de masă MyISAM. Lucrul cu fișierele bazei de date este direct, astfel încât repararea este posibilă numai în oprire MySQL server de baze de date.
Memo rapide tabele de reparații MyISAM pentru ei înșiși și pentru cei care vor aduce pe această pagină dintr-o căutare.
Du-te la server prin intermediul terminalului. Du-te la folderul în care MySQL stochează fișierele sale. Vezi acest lucru poate fi în fișierul de configurare MySQL my.cnf. Destul de des acest lucru este / var / lib / mysql.
Opriți serverul de baze de date, sau chiar și atunci când verificarea vom obține rapoarte de toate blocare curente de pe masa
Serviciul de oprire MySQL
Verificarea tabelelor de date
Verificați toate bazele de date
myisamchk -css * / *. MYI
Verificați o bază de date
myisamchk -css nume_bază_date / *. MYI
Opțiunea -c poate fi omisă, este implicit. Double s Această opțiune determină myisamchk să fie foarte liniștită, aproximativ vorbind, toată producția lor verbose de tabele care pot fi reparate se contopeste în / dev / null și afișează numai erorile și avertizările.
Recuperare date
Deci, mese rupte găsit, se procedează pentru a repara. În primul rând, faceți o copie de rezervă a bazei de date, în cazul în care au găsit problema.
tar -czvf imya_bazy.tgz nume_bazădedate
Apoi, verificați mai multe tabele separate ale căror nume sunt primite în etapa anterioară
myisamchk -c nume_bază_date / imya_tablitsy.MYI
Poate veți obține unele informații utile, dar, de obicei, myisamchk pur și simplu recomandă reparații. Reparatii, asa repara.
myisamchk -r nume_bază_date / imya_tablitsy.MYI
Destul de des, utilitatea nu poate face acest lucru, atunci încercați un mod diferit:
myisamchk o- database_name / imya_tablitsy.MYI
Dacă totul este în regulă, server și rulați site-urile dvs. de lucru din nou
Pornirea serviciului MySQL
Nu uitați să ștergeți fișierul copie de rezervă în cazul în care nu este necesară
Și există versiune foarte leneș a tuturor procesului de mai sus, procesul de toate tabelele MyISAM în toate bazele de date disponibile pentru utilizator specificat și funcționează fără a opri serverul MySQL:
mysqlcheck -u -p rădăcină --auto-reparare --check --optimize --all-baze de date
Sau într-o bază de date specifică:
mysqlcheck -u -p rădăcină --auto-reparare --check --optimize nume_bază_date
Fără optimizare, doar scanare și repararea se poate face pentru tipul de tabel InnoDB:
mysqlcheck -u -p rădăcină --auto-reparare --check --all-baze de date