Mysql
 sql >> база данни >  >> RDS >> Mysql

Безплатни методи за поправяне на повредена MySQL база данни

Когато MySQL база данни се повреди, може да се чудите защо базата данни се е повредила на първо място. Тази публикация ще очертае възможните причини за корупцията на базата данни, преди да отговори на въпроса:как да поправя повредена MySQL база данни?

Причини за повреда на MySQL база данни

MySQL база данни може да се повреди поради някоя от следните причини:

  • Внезапно изключване на сървъра
  • Дефект в хардуера, използван за съхраняване и извличане на данни като дискова подсистема, дискови контролери, драйвери и др.
  • Процесът ‘mysqld’ е убит, докато е в процес на текуща актуализация
  • Софтуерна грешка

Може да бъде трудно да се определи причината за повредена база данни. Каквато и да е причината, притеснението, което трябва да имате, е как да поправите повредената база данни MySQL.

Как да поправя повредена MySQL база данни?

Първото нещо, което трябва да погледнете, е съобщението за грешка, което получавате. Следват някои съобщения за грешка, които може да срещнете, когато базата данни MySQL се повреди:

Грешка 144: Таблицата е повредена и последният ремонт е неуспешен

Грешка 141: Дублиран уникален ключ или ограничение за запис или актуализиране

Грешка 136: Няма повече място в индексния файл

Грешка 134: Записът вече е изтрит

Грешка 126: Индексният файл е сринат/ грешен файлов формат

Грешка: Не можа да се намери файл „wtlicensemanager.dll“

Ако искате да извършите ремонта безплатно, имате две възможности:

  1. Направете го ръчно.
  2. Направете го с помощта на софтуер, като използвате пробния период.

Софтуерът за възстановяване на база данни може да свърши по-добра и по-бърза работа при поправянето на повредената база данни.

Ето едно софтуерно приложение, което можете да използвате, за да поправите повредената база данни MySQL:

Този инструмент за ремонт на база данни MySQL поправя база данни, създадена с помощта на двигатели на база данни InnoDB и MyISAM на MySQL. Можете да изтеглите демонстрационната версия на инструмента за ремонт на SQL, за да прегледате възстановима база данни, преди да ги запазите.

Основни характеристики:

  • Може да възстанови MySQL база данни на Windows и Linux системи.
  • Възстановява InnoDB файлове (.ibdata, .ibd и .frm) и MyISAM файлове (myd, .myi и .frm)
  • Възстановява обекти на база данни като таблици, свойства на таблици, типове данни, изгледи, тригери и т.н.
  • Позволява селективно възстановяване на компоненти на базата данни

Как да поправя повредена MySQL база данни ръчно?

Има два типа машини за съхранение в MySQL:InnoDB и MyISAM. Таблицата InnoDB съдържа FRM, IBDATA и IDB файлове, докато таблицата MyISAM съдържа FRM, MYD и MYI файлове.

Преди да продължим

Ето няколко неща, които трябва да имате предвид, преди да опитате ръчно възстановяване:

  • Не рестартирайте сървъра

Когато рестартирате сървъра, сървърът може да постави повредената база данни в режим на съмнение. Това ще изключи базата данни. Той също така може да създава грешки при свързване към базата данни. Трябва да опитате възстановяване, без да рестартирате сървъра.

  • Използвайте режим на един потребител

Уверете се, че сте единственият потребител, свързан към базата данни. Режимът за един потребител ви дава целия контрол, елиминирайки намесата на други потребители.

  • Не надграждайте MySQL

Може да помислите за актуализиране на базата данни MySQL, за да поправите повредените файлове. Но това не е така. Надстройката може да причини трайна загуба на данни.

  • Направете резервно копие на повредената база данни MySQL

Важно е да имате резервно копие на повредения файл, тъй като може да има грешки, които могат да доведат до загуба на данни. Няма гаранция, че вашите ръчни стъпки няма да повлияят на здравите файлове. Така че е безопасно да имате резервно копие, преди да опитате ръчно възстановяване.

За архивиране използвайте следната команда:

mysqldump db_name> database_name.sql

Просто въведете името на базата си на мястото на базата_име.

Ако горното не работи, опитайте следното:

mysqldump –u[потребителско име] –p[парола] [име_на_база от данни]> [dump_file].sql 

Има и друг начин за архивиране на базата данни:

услуга mysqld stop

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

Сега, когато имаме резервното копие, можем да се опитаме да поправим повредената база данни MySQL.

Как да възстановя MySQL база данни ръчно?

Поправяне на MyISAM база данни

Ако използвате механизма за съхранение на база данни MyISAM за вашата таблица на база данни, можете да използвате следните команди, за да поправите таблицата:

Mysqlcheck

Ако вашият MySQL сървър работи, изпълнете следната команда mysqlcheck, за да поправите вашата таблица:

mysqlcheck -r [име_на_база_данни]

Не забравяйте да замените „име на база данни“ с името на вашата база данни.

Myisamchk

Ако сървърът не работи, опитайте да поправите таблицата на базата данни, като използвате командата myisamchk:

Забележка: Преди да изпълните тази команда, уверете се, че сървърът няма отворени таблици.

myisamchk table_name

Поправете името на таблицата с името на таблицата във вашия случай. Тази команда автоматично коригира вашата таблица.

За да рестартирате сървъра, въведете следното:

Стартиране на услугата mysqld

Принудително възстановяване на InnoDB

Ще трябва да извършите принудително възстановяване на InnoDB, за да извлечете данни от повредена таблица на база данни на InnoDB.

Стъпка 1: Първо, трябва да отворите файла my.cnf.

В този файл намерете секцията [mysqld].

Добавете следния ред към този раздел:

innodb_force_recovery=1

Сега запазете конфигурационния файл и рестартирайте MySQL сървъра. Можете да зададете стойността на innodb_force_recovery от 1 до 6. Стойност над 4 обаче не се препоръчва, тъй като може да повреди данните.

Стъпка 2: Изсипете данните от таблицата в нов файл.

За да направите това, използвайте следната команда:

mysqldump –u потребител –p db_name table_name> single_dbtable_dump.sql

Стъпка 3: Изхвърлете повредената таблица от базата данни.

mysql –u потребител –p –execute=”DROP TABLE db_name.table_name”

Стъпка 4: Възстановете таблицата от дъмп файла.

mysql –u потребител –p

Стъпка 5: След като файловете бъдат поправени, деактивирайте режима за принудително възстановяване със следната команда:

#innodb_force_recovery=…

Сега можете да рестартирате услугата MySQL в нормален режим.

Надяваме се, че горните методи ще ви помогнат да поправите повредената база данни 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. MySQL Update Inner Join таблици заявка

  2. двойни резултати в моя масив (mysql_fetch_array)

  3. JOIN заявки срещу множество заявки

  4. (mysql, php) Как да получа стойност на полето auto_increment преди вмъкване на данни?

  5. MySql Count не може да показва 0 стойности