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

0

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

Ontem, eu corri a atualização mais recente do Windows, e depois de 2 horas de moagem meu computador caiu ... e desde então, o Windows não quer começar, e me dá a opção de reinstalar o Windows, com a possibilidade de manter o meu dados pessoais. No entanto, acho que ele irá apagar o MySQL e todos os dados armazenados.

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

Para fazer isso, eu 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

Eu então reiniciei o servidor mysql e abri um console SQL. Eu poderia entrar no console SQL usando a senha do Windows (é diferente da senha do SQL no Linux), e eu poderia 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 no banco de dados em que estou interessado, mas, por algum motivo, não pode consultar o conteúdo das tabelas. Eu posso listar todas as tabelas, mas não posso consultar as tabelas. SQL me diz que tal tabela não existe, mesmo que tenha acabado de listá-la.

Eu tenho uma captura de tela, não há erro de digitação, mas o site não me deixa postar uma imagem ...

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

Obrigado pela sua ajuda!

    
por Guillaume 05.06.2018 / 21:57

1 resposta

1

A razão que não funcionou é que eu tinha 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 eu tinha recuperado de um backup Eu fiz 2 semanas atrás.

Eu copiei o arquivo ProgramData do Windows para um disco externo, então copiei esse backup do banco de dados para minha pasta de destino e o console SQL, bem como meu IDE, pôde ver esse banco de dados original, todas as suas tabelas e todos os dados. Eu usei meu IDE para criar um arquivo de backup (despejo).

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

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

  1. Use o linux para acessar os dados do Windows e faça backup de todos os seus dados
  2. Para recuperar dados do SQL, você está interessado no seguinte local: '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' . NÃO MUDE NOME NENHUM!
  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 do Linux que você pode ver os bancos de dados do Windows a partir do Linux e que você pode acessar os dados (usando um tipo de instrução select * from table);
  6. Use seu IDE para se conectar a esse banco de dados (usando as credenciais do Windows) para criar um arquivo de despejo do IDE.
por Guillaume 05.06.2018 / 22:27