Recuperando bases de dados MySql em InnoDB

Primeiro, vamos entender como funciona o armazenamento de dados do MySql no Windows:

mysqlO MySql 5 guarda os dados dos seus bancos no diretório c:\Program Files\MySql\data\nome_do_banco. Dentro deste diretório, cada pasta representa um banco de dados.

Dentro da pasta de cada banco, existirá um arquivo .frm para cada tabela do banco, caso o banco e as tabelas estejam no formato InnoDB. Caso o formato seja MyISAM, existirão arquivos frm (form com os tipos de arquivo), myd (dados) e myi (índices). Mas neste artigo pretendo me focar em tabelas InnoDB.

Ao contrário do MyISAM, o InnoDB possui um arquivo frm para cada tabela no diretório citado anteriormente, e os dados de todas as tabelas ficam em um único arquivo, o ibdata1, que fica no diretório data, junto das pastas que representam os bancos de dados.

Portanto, caso você precise recuperar seus bancos de dados através desses arquivos (em caso de pane no MySql ou qualquer outro motivo), copie todo o conteúdo do diretório data para o mesmo diretório de outra instalação do MySql. Estou considerando que a instalação de destino não tem nenhum banco de dados criado, portanto você pode substituir o arquivo ibdata1 tranqüilamente.

Após copiar os arquivos, verifique se suas tabelas apresentam os dados corretamente através da interface que você usa – eu recomendo phpMyAdmin ou HeidiSQL. Eu prefiro o HeidiSQL, principalmente quando você não tem um Apache+PHP rodando na sua máquina.


Poderia avaliar este artigo, por favor?

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas
Loading ... Loading ...

Posts relacionados

  • http://www.automacao.eti.br/ Eduardo

    ÓTIMA DICA!
    mas faltou somente 1 detelhe,
    após copiar a pasta data para o novo local você precisa excluir os arquivos “ib_logfile0″ e “ib_logfile1″, pois quando vai startar o banco ocorre erro com o tamanho do arquivo diferente. Exlcuindo o mysql encarrega-se de resolver o resto.
    ;)

  • http://www.automacao.eti.br Eduardo

    ÓTIMA DICA!
    mas faltou somente 1 detelhe,
    após copiar a pasta \data para o novo local você precisa excluir os arquivos “ib_logfile0″ e “ib_logfile1″, pois quando vai startar o banco ocorre erro com o tamanho do arquivo diferente. Exlcuindo o mysql encarrega-se de resolver o resto.
    ;)

  • http://www.elvis.eti.br/ Elvis Fernandes

    Opa, dessa eu não sabia!

    Obrigado pela contribuição!!!

    Abraço!

  • http://www.elvis.eti.br Elvis Fernandes

    Opa, dessa eu não sabia!

    Obrigado pela contribuição!!!

    Abraço!

  • Gerson Nunes Ferreira

    Ótimo!!!
    Deu certinho… valeu pela informação!

  • Gerson Nunes Ferreira

    Ótimo!!!
    Deu certinho… valeu pela informação!

  • marcelo guerra

    otima dica, me ajudou muito, nao sabia deste tipo de tabela mysql. aprendendo cada vez mais. valeu

  • marcelo guerra

    otima dica, me ajudou muito, nao sabia deste tipo de tabela mysql. aprendendo cada vez mais. valeu

  • Jefferson

    Deu certo cara, vc é um genio.
    Valeu por partilhar o conhecimento conosco.

    Abraço.

  • weber

    Cara, e como fazer quando seu banco de dados estiver em hospedagem …

  • Leonardo

    Deu certo! Obrigado pela ajuda
    Grande Abraço

  • Adolfo

     Amigo, muito boa a dica. Consegui recuperar a base de dados da igreja com informações dos batisados desde 1950! já havia mais de 29900 registros nela. Show de bola mesmo!! valeu.

  • http://www.facebook.com/eduardo.bertolucci Eduardo Bertolucci

    Mesmo fazendo isso não consegui recuperar.

  • http://www.facebook.com/eduardo.bertolucci Eduardo Bertolucci

    O mysql não inicio o serviço, da mensagem de erro código 1067. estou usando o 5.5