Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Stellen Sie die MySQL-Datenbank von ibdata1 wieder her

Folgendes hat bei mir funktioniert:

  • Setzen Sie in Ihrer my.cnf

    innodb_force_recovery =1
  • Versuchen Sie, Ihren mysqld neu zu starten. Wenn nicht, wiederholen Sie Schritt 1 und erhöhen Sie innodb_force_recovery um jeden Schritt, bis er erfolgreich ist. Verwenden Sie den Leitfaden, um zu verstehen, was bei jeder Erhöhung passiert:http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

  • Sobald mysqld läuft, versuchen Sie alle Ihre Datenbanken zu sichern

  • Wenn das nicht gelingt, müssen Sie es zunächst auf Datenbankebene versuchen
  • Wenn das nicht gelingt, müssen Sie es auf Tabellenebene versuchen
  • Sobald einer davon erfolgreich ist und entweder alle Ihre Datenbanken oder alle Ihre Tabellen exportiert wurden, stoppen Sie mysqld

  • Verschieben Sie Ihre ib_logfile*> ib_logfile*.bak. Diese befinden sich normalerweise in Ihrem MySQL-Datenverzeichnis.

  • Wenn Sie im ersten Schritt Ihre innodb_force_recovery => 4 erhöht haben, müssen Sie sie unter 4 setzen. Ab 5.6.15 versetzt eine innodb_force_recovery-Einstellung von 4 oder mehr InnoDB in den schreibgeschützten Modus.

  • Starten Sie den mysqld-Server

  • Importieren Sie Ihre exportierten Datenbanken oder Tabellen

  • Erhöhte Ihre innodb_force_recovery => 1

  • Starten Sie den mysqld-Server neu