É possível restaurar um banco de dados MySQL a partir dos arquivos físicos do banco de dados. Eu tenho um diretório que possui os seguintes tipos de arquivo:
client.frm
client.MYD
client.MYI
mas por mais 20 mesas.
Eu normalmente uso o mysqldump ou uma ferramenta similar para obter tudo em 1 arquivo SQL. Qual é a maneira de lidar com esses tipos de arquivos?
Respostas:
Uma tabela MySQL MyISAM é a combinação de três arquivos:
Você deve poder restaurá-lo copiando-o na pasta do banco de dados (no linux, o local padrão é
/var/lib/mysql/
)Você deve fazê-lo enquanto o servidor não estiver em execução.
fonte
mysql
usuário que estava executando omysqld
processo não podia acessá-los. Fazer umchmod -R mysql:mysql .
diretório de dados mysql é rápido e fácil, mas descobrir, antes disso, por que todos os meus bancos de dados resoterd pareciam não ter tabelas demoravam um pouco mais.chown
copiar os arquivos assim:sudo chown -R mysql:mysql /var/lib/mysql
A partir da resposta de @Vicent, eu já restaurei o banco de dados MySQL como abaixo:
Etapa 1. Desligar o servidor Mysql
Etapa 2. Copie o banco de dados na pasta do banco de dados (no linux, o local padrão é / var / lib / mysql). Mantenha o mesmo nome do banco de dados e o mesmo nome do banco de dados no modo mysql.
Etapa 3: Mude o próprio e mude o modo da pasta:
Etapa 4: Copie ibdata1 na pasta do banco de dados
Etapa 5: copie os arquivos ib_logfile0 e ib_logfile1 na pasta do banco de dados.
Lembre-se de mudar próprio e alterar a raiz desses arquivos:
ou
Etapa 6 (Opcional): Meu site tem configuração para armazenar arquivos em um local específico e, em seguida, copio-os exatamente para o local correspondente.
Etapa 7: Inicie o servidor Mysql. Tudo volta e se diverte.
É isso.
Veja mais informações em: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
fonte
Se você estiver restaurando a pasta, não se esqueça de exibir os arquivos no mysql: mysql,
chown -R mysql:mysql /var/lib/mysql-data
caso contrário você receberá erros ao tentar soltar um banco de dados ou adicionar uma nova coluna etc.
e reinicie o MySQL
fonte
Eu tenho o mesmo problema, mas não foi possível recuperar com êxito o banco de dados, com base nas instruções acima.
Eu só consegui recuperar pastas de banco de dados mysql do meu sistema operacional Ubuntu. Meu problema é como recuperar meu banco de dados com essas pastas de dados mysql ilegíveis. Então, voltei ao sistema operacional win7 para o ambiente de desenvolvimento.
* NOTA Eu tenho um servidor de banco de dados existente em execução no win7 e preciso apenas de alguns arquivos de banco de dados para recuperar os arquivos recuperados. Para recuperar com êxito os arquivos de banco de dados do Ubuntu OS, preciso instalar recentemente o servidor de banco de dados mysql (mesma versão do Ubuntu OS no meu win7 OS) para recuperar tudo naquele antigo servidor de banco de dados.
Crie outro novo servidor de banco de dados mysql com a mesma versão dos arquivos recuperados.
Pare o servidor mysql
copie a pasta recuperada e cole no banco de dados mysql (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data) é armazenado.
copie o arquivo ibdata1 localizado na pasta instalada do linux mysql e cole-o em (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Basta substituir o existente ou fazer backup antes de substituir.
inicie o servidor mysql e verifique se você recuperou com sucesso os arquivos do banco de dados.
Para usar o banco de dados recuperado no meu servidor mysql atualmente usado, basta exportar o banco de dados recuperado e importá-lo para o meu servidor mysql existente.
Espero que isso ajude, porque nada mais funcionou para mim.
fonte
Com o MySql 5.1 (Win7). Para recriar DBs (InnoDbs), substituí todo o conteúdo dos seguintes diretórios (parâmetros my.ini):
Depois disso, iniciei o MySql Service e tudo funciona bem.
fonte
Sim, ele é! Basta adicioná-los à sua pasta de banco de dados (dependendo do sistema operacional) e execute um comando como "Permissões de Correção do MySQL". Isso armazenou novamente o banco de dados. Veja também que as permissões corretas estão definidas nos arquivos também.
fonte
Certa vez, copiei esses arquivos na pasta de armazenamento do banco de dados para um banco de dados mysql que estava funcionando, iniciei o db e esperei que ele "reparasse" os arquivos, depois os extraí com o mysqldump.
fonte
No meu caso, basta remover o tc.log em / var / lib / mysql para iniciar o mariadb / mysql novamente.
fonte