Como recuperar o banco de dados MySQL no Windows após falha na atualização do Windows

Como recuperar o banco de dados MySQL no Windows após falha na atualização do Windows

Tenho um sistema que desenvolvi em Java Spring e que armazena dados em um banco de dados MySQL executado localmente no windows 10.

Ontem executei a última atualização do Windows e depois de 2 horas de trabalho meu computador travou... e desde então o Windows não quer iniciar e me dá a opção de reinstalar o Windows, com a possibilidade de manter meus dados pessoais. No entanto, acho que isso apagará o MySQL e todos os dados armazenados.

Eu tenho o Linux rodando na mesma máquina e estou tentando usar o Linux para acessar o banco de dados para fazer backup usando o mysqldump.

Para isso, tentei montar o diretório onde os dados são salvos no windows para o diretório linux usando o seguinte comando:

sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql

Em seguida, reiniciei o servidor mysql e abri um console SQL. Eu poderia fazer login no SQL Console usando a senha do Windows (é diferente da senha do SQL no Linux) e listar todos os bancos de dados salvos na minha máquina Windows.

Isso quando fica mais complicado. O console SQL pode listar todas as tabelas do banco de dados em que estou interessado, mas por algum motivo não pode consultar o conteúdo das tabelas. Posso listar todas as tabelas, mas não consigo consultá-las. SQL me diz que tal tabela não existe, embora tenha acabado de listá-la.

Tenho uma captura de tela disso, não há erro de digitação, mas o site não me permite postar imagem...

Como posso resolver esse problema? Ou existe uma maneira mais inteligente de criar um despejo a partir do local do Windows, mesmo que o Windows não esteja iniciando?

Obrigado pela ajuda !

Responder1

O motivo de não funcionar é que eu havia renomeado o banco de dados no windows como "database_W", para diferenciá-lo do outro banco de dados no linux que tinha o mesmo nome e que havia recuperado de um backup que fiz 2 semanas atrás.

Eu copiei o arquivo ProgramData do Windows para um disco externo, então copiei o backup do banco de dados para minha pasta de destino e, em seguida, o console SQL e meu IDE puderam ver esse banco de dados original, todas as suas tabelas e todos os dados. Usei meu IDE para criar um arquivo de backup (dump).

Como Rinzwind apontou, é fundamental fazer backup dos dados regularmente, especialmente antes das atualizações do Windows... lição tirada!

Então o que fiz para recuperar os dados foi:

  1. Use o Linux para acessar os dados do Windows e fazer backup de todos os seus dados
  2. Para recuperar dados SQL, você está interessado no seguinte local: '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data'. NÃO MUDE NENHUM NOME LÁ!
  3. Use o seguinte comando para montar o arquivo ProgramData do Windows no diretório Linux apropriado:sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql
  4. Reinicie seu serviço sql (usei este comando: service mysql restart)
  5. Verifique com seu console SQL no terminal Linux se você pode ver os bancos de dados do Windows do Linux e se pode acessar os dados (usando um tipo de instrução select * from table);
  6. Use seu IDE para conectar-se a este banco de dados (usando as credenciais do Windows) para criar um arquivo de despejo a partir do IDE.

informação relacionada