Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

recuperar banco de dados mysql de ibdata1


O seguinte funcionou para o meu:

  • Defina innodb_force_recovery =1 no seu my.cnf

  • Tente fazer com que seu mysqld reinicie. Caso contrário, repita a etapa 1 e incrementinnodb_force_recovery por cada um até ser bem-sucedido. Use o guia para ajudá-lo a entender o que está acontecendo cada vez que você o incrementa:http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

  • Uma vez que o mysqld está rodando, tente e despeje todos os seus bancos de dados
  • Se isso não funcionar, você terá que tentar primeiro no nível do banco de dados
  • Se isso não funcionar, você terá que tentar no nível da mesa

  • Assim que um deles for bem sucedido e todos os seus db's ou todas as suas tabelas forem exportadas, pare o mysqld

  • Mova seu ib_logfile*> ib_logfile*.bak. Estes estão normalmente em seu diretório de dados mysql.

  • Se na primeira etapa você incrementou seu innodb_force_recovery => 4, você precisa configurá-lo abaixo de 4. A partir de 5.6.15, uma configuração innodb_force_recovery de 4 ou mais coloca o InnoDB no modo somente leitura.

  • Inicie o servidor mysqld

  • Importe seus bancos de dados ou tabelas exportados

  • Incrementou seu innodb_force_recovery => 1

  • Reinicie o servidor mysqld