Mysql
 sql >> Base de données >  >> RDS >> Mysql

récupérer la base de données mysql à partir de ibdata1

Ce qui suit a fonctionné pour mon :

  • Définissez innodb_force_recovery =1 dans votre my.cnf

  • Essayez de redémarrer votre mysqld. Si ce n'est pas le cas, répétez l'étape 1 et incrémentez innodb_force_recovery par chacun jusqu'à ce que vous réussissiez. Utilisez le guide pour vous aider à comprendre ce qui se passe chaque fois que vous l'incrémentez :http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

  • Une fois mysqld lancé, essayez de vider toutes vos bases de données

  • Si cela ne fonctionne pas, vous devrez d'abord l'essayer au niveau de la base de données
  • Si cela ne fonctionne pas, vous devrez l'essayer au niveau de la table
  • Une fois que l'un de ceux-ci a réussi et que toutes vos bases de données ou toutes vos tables sont exportées, arrêtez mysqld

  • Déplacez votre ib_logfile*> ib_logfile*.bak. Ceux-ci se trouvent généralement dans votre répertoire de données mysql.

  • Si dans la première étape vous avez incrémenté votre innodb_force_recovery => 4, vous devez le définir en dessous de 4. Depuis la version 5.6.15, un paramètre innodb_force_recovery de 4 ou plus place InnoDB en mode lecture seule.

  • Démarrez le serveur mysqld

  • Importez vos bases de données ou tables exportées

  • Incrémenté votre innodb_force_recovery => 1

  • Redémarrez le serveur mysqld