Restaurar banco de dados MySQL de arquivos físicos
Pergunta
É possível restaurar um banco de dados MySQL a partir dos arquivos de banco de dados físicos. Eu tenho um diretório que tem os seguintes tipos de arquivos:
client.frm
client.MYD
client.MYI
mas por cerca de 20 mais tabelas.
Eu costumo usar mysqldump ou uma ferramenta semelhante para colocar tudo em um arquivo SQL então o que é a maneira de lidar com esses tipos de arquivos?
Solução
tabela A MySQL MyISAM é a combinação de três arquivos:
- O arquivo FRM é a definição da tabela.
- O arquivo MYD é onde os dados reais são armazenados.
- O arquivo MYI é onde os índices criados em cima da mesa são armazenados.
Você deve ser capaz de restaurar, copiando-os na sua pasta de base de dados (no Linux, o local padrão é /var/lib/mysql/
)
Você deve fazê-lo enquanto o servidor não está em execução.
Outras dicas
A partir da resposta de @Vicent, eu já restaurar banco de dados MySQL como abaixo:
Passo servidor MySQL 1. Shutdown
Passo 2. base de dados de cópia em sua pasta de base de dados (em linux, o local padrão é / var / lib / mysql). Mantenha mesmo nome do banco de dados, e mesmo nome de banco de dados no modo mysql.
sudo cp -rf /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/
Passo 3: Mudança própria e modo de alteração da pasta:
sudo chown -R mysql:mysql /var/lib/mysql/database1
sudo chmod -R 660 /var/lib/mysql/database1
sudo chown mysql:mysql /var/lib/mysql/database1
sudo chmod 700 /var/lib/mysql/database1
Passo 4: Copiar ibdata1 em seu banco de dados de pasta ??p>
sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/
sudo chown mysql:mysql /var/lib/mysql/ibdata1
Passo 5:. Cópia ib_logfile0 e ib_logfile1 arquivos em sua pasta de banco de dados
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile0 /var/lib/mysql/
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile1 /var/lib/mysql/
Lembre-se de mudança própria e mudança raiz desses arquivos:
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile0
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile1
ou
sudo chown -R mysql:mysql /var/lib/mysql
Passo 6 (opcional): Meu site tem configuração para armazenar arquivos em um local específico, então eu copiar aqueles a localização correspondente, exatamente
.Passo 7: Comece o seu servidor MySQL. Tudo voltar e apreciá-lo.
É isso.
Veja mais informações em: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
Eu tenho o mesmo problema, mas não foi recuperada com sucesso o banco de dados com base nas instruções acima.
Eu só tenho pastas recuperadas do banco de dados mysql do meu Ubuntu OS. Meu problema é como recuperar o meu banco de dados com aqueles pasta de dados mysql ilegível. Agora eu voltar para OS Win7 para ambiente de desenvolvimento.
* NOTA Eu tenho um servidor de banco de dados existente em execução no win7 e eu só precisa de alguns arquivos de banco de dados para recuperar a partir dos arquivos recuperados. Para recuperar com sucesso os arquivos de banco de dados a partir do Ubuntu OS I necessidade de mesma versão novo servidor de banco de dados MySQL instalado fresco do Ubuntu OS no meu win7 OS para recuperar tudo nesse servidor de banco de idade.
-
Faça outra nova mesma versão do servidor de banco de dados mysql do arquivos recuperados.
-
Parar o servidor mysql
-
copiar a pasta recuperada e colar no (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ dados) da base de dados mysql está armazenado.
-
Copie o arquivo ibdata1 localizado no linux mysql pasta instalada e colá-lo em (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Pouco mais de direito a cópia de segurança existentes ou fazer antes de substituir.
-
iniciar o servidor MySQL e verificar se você tem recuperado com sucesso os arquivos de banco de dados.
-
Para usar o banco de dados recuperado no meu servidor mysql atualmente usado simplesmente exportar o banco de dados recuperado e importá-lo meu mysql existente servidor.
Hope Estes irão ajudar porque eu não encontrar uma solução para o meu problema.
Se estiver a restaurar a pasta não se esqueça de chown os arquivos para mysql: mysql
chown -R mysql:mysql /var/lib/mysql-data
caso contrário você terá erros ao tentar soltar um banco de dados ou adicionar nova coluna etc ..
e reiniciar MySQL
service mysql restart
Com o MySQL 5.1 (Win7). Para recriar DBS (InnoDbs) troquei todos os conteúdos de seguir dirs (params my.ini):
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"
Depois que eu comecei serviço MySQL e tudo funciona bem.
Sim, é! Basta adicioná-las à sua pasta-base de dados (dependendo do sistema operacional) e executar um comando como "Permissões MySQL consertar". Esta re-armazenados no banco de dados. Veja também que as permissões corretas estão definidas nos arquivos de cabeceira.
Uma vez eu copiado esses arquivos para a pasta de armazenamento de banco de dados para um banco de dados mysql que estava trabalhando, começou a db e esperou por ele para "reparar" os arquivos, em seguida, extraído-los com mysqldump.
No meu caso, simplesmente removendo o tc.log em / var / lib / mysql foi o suficiente para iniciar o MariaDB / mysql novamente.