Boa tarde.
Meu servidor Debian 9 encontrou um problema que tornou o sistema operacional inacessível. Consegui extrair todos os arquivos brutos do banco de dados (/var/lib/mysql) para o meu projeto, mas infelizmente o tipo de mecanismo foi definido como InnoDB.
Existe alguma chance de recuperar o banco de dados de alguma forma? Obrigado.
Responder1
Se você tiver o conteúdo completo /var/lib/mysql
, provavelmente deverá tentar substituir completamente o conteúdo atual /var/lib/mysql
pelo conteúdo que você possui.
Dependendo das opções do mariadb/mysql, alguns ou todos os dados do innodb são globais e armazenados nos arquivos /var/lib/mysql/ibdata1
e /var/lib/mysql/ib_logfile
. Portanto, apenas restaurar /var/lib/mysql/databasename/table*
geralmente não será suficiente para restaurar os dados do innodb.
Você pode mover temporariamente o conteúdo atual desse diretório para outro local se já tiver restaurado ou começado a usá-lo. Ou melhor ainda, inicie temporariamente uma nova máquina em uma VM ou algo onde você possa testar a restauração de todo o /var/lib/mysql
diretório sem interromper nada.
Depois de colocar seus dados antigos, /var/lib/mysql
você poderá iniciar o servidor e, com sorte, extrair seus dados. Pode ser necessário iniciar o mariadb com as opções para ignorar privilégios, dependendo de quão bloqueados seus privilégios estavam. Eu não continuaria a usar isso, em vez disso, sugeriria que você usasse o mysqldump ou suas ferramentas favoritas para despejar o banco de dados e, em seguida, importe-o novamente para o seu banco de dados de produção.
Conforme você move as coisas de volta e certifique-se de que a conta de serviço mysql/mariadb (normalmente mysql/mysql) possui e tem acesso de leitura e gravação a todos os arquivos.