MariaDB - importar arquivos frm/ibd brutos do InnoDB?

MariaDB - importar arquivos frm/ibd brutos do InnoDB?

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/mysqlpelo 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/ibdata1e /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/mysqldiretório sem interromper nada.

Depois de colocar seus dados antigos, /var/lib/mysqlvocê 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.

informação relacionada