Mysql
 sql >> Database >  >> RDS >> Mysql

recuperare il database mysql da ibdata1

Quanto segue ha funzionato per il mio:

  • Imposta innodb_force_recovery =1 nel tuo my.cnf

  • Prova a riavviare mysqld. In caso contrario, ripetere il passaggio n. 1 e incrementareinnodb_force_recovery di ciascuno fino al successo. Usa la guida per aiutarti a capire cosa sta succedendo ogni volta che lo incrementi:http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

  • Una volta che mysqld è in esecuzione, prova a scaricare tutti i tuoi database

  • Se ciò non va a buon fine, dovrai prima provarlo a livello di database
  • Se ciò non va a buon fine, dovrai provarlo a livello di tavolo
  • Una volta che uno di questi ha avuto successo e tutti i tuoi db o tutte le tue tabelle sono stati esportati, ferma mysqld

  • Sposta il tuo ib_logfile*> ib_logfile*.bak. Questi sono in genere nella tua directory di dati mysql.

  • Se nel primo passaggio hai incrementato il tuo innodb_force_recovery => 4, devi impostarlo al di sotto di 4. A partire dalla 5.6.15, un'impostazione innodb_force_recovery di 4 o più posiziona InnoDB in modalità di sola lettura.

  • Avvia il server MySQL

  • Importa i tuoi database o tabelle esportati

  • Incrementato il tuo innodb_force_recovery => 1

  • Riavvia il server mysqld