A repor a base de dados MySQL dos ficheiros físicos

é possível restaurar uma base de dados MySQL a partir dos ficheiros físicos da base de dados. Eu tenho um diretório que tem os seguintes tipos de Arquivo:

Cliente.frm
cliente.MYD
cliente.MYI

Mas por mais 20 mesas.

normalmente uso o mysqldump ou uma ferramenta semelhante para obter tudo em um arquivo SQL, então qual é a maneira de lidar com estes tipos de arquivos?

Author: Vincent, 2009-01-27

7 answers

Uma mesa MyISAM MySQL é a combinação de três ficheiros:

  • o ficheiro FRM é a definição da tabela.
  • o ficheiro MYD é onde os dados reais são armazenados.
  • o ficheiro MYI é onde os índices criados na tabela são armazenados.

Você deve ser capaz de restaurar, copiando-os na sua pasta de base de dados (no linux, a localização por omissão é /var/lib/mysql/)

Você deve fazê-lo enquanto o servidor não está em execução.

 111
Author: Vincent, 2015-07-25 20:24:03
A partir da resposta de @Vicent, já restauro a base de dados MySQL como abaixo: Passo 1. Desligar o servidor de Mysql Passo 2. Copiar a base de dados na sua pasta de base de dados (no linux, a localização por omissão é /var/lib/mysql). Mantenha o mesmo nome da base de dados, e o mesmo nome da base de dados no modo mysql.
sudo cp -rf   /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/

Passo 3: Mudar o modo próprio e mudar a 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 o ibdata1 na sua pasta de base de dados

sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/

sudo chown mysql:mysql /var/lib/mysql/ibdata1

Passo 5: copiar ib_logfile0 e ib_logfile1 ficheiros na sua pasta de base 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 mudar o próprio e mudar 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): O meu site tem configuração para armazenar ficheiros num local específico, depois copio-os para o local correspondente, exactamente.

Passo 7: iniciar o seu servidor Mysql. Tudo volta e aproveita. É isso.

Ver Mais informação em: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/

 14
Author: biolinh, 2018-04-19 08:43:47

Eu Tenho o mesmo problema, mas não foi recuperado com sucesso a base de dados com base nas instruções acima.

Só recuperei as pastas da base de dados mysql do meu Ubuntu OS. O meu problema é como recuperar a minha base de dados com a pasta de dados mysql ilegível. Agora eu mudo de volta para o win7 OS para o ambiente de desenvolvimento.

*Nota Eu tenho um servidor de banco de dados existente em execução no win7 e eu só preciso de poucos arquivos de banco de dados para recuperar dos arquivos recuperados. Para recuperar com sucesso os arquivos de banco de dados do Ubuntu OS que eu preciso para renovar o servidor de banco de dados mysql instalado a mesma versão do Ubuntu OS no meu win7 OS para recuperar tudo naquele antigo servidor de banco de dados.

  1. Fazer outra nova versão do servidor de bases de dados mysql a partir da ficheiros recuperados.

  2. Parar o servidor de mysql

  3. Copiar a pasta recuperada e colar na (C:\ProgramData\MySQL\MySQL servidor 5.5\data) a base de dados mysql é Opcao.

  4. Copiar o ibdata1 ficheiro localizado na pasta instalada no Linux mysql e colar (C:\ProgramData\MySQL\MySQL servidor 5.5\data). Apenas corrigir o existente ou fazer backup antes de substituir.

  5. Iniciar o servidor de mysql e verificar se recuperou com sucesso dado.

  6. Para usar o banco de dados recuperado no meu servidor de mysql actualmente usado basta exportar o banco de dados recuperado e importá - lo Meu mysql existente servidor.

Espero que isto ajude, porque eu ajudei. não encontrar uma solução para o meu problema.
 7
Author: Ivan Igniter, 2015-02-27 10:08:17

Se estiver a restaurar a pasta, não se esqueça de enviar os ficheiros para o mysql: mysql

chown -R mysql:mysql /var/lib/mysql-data

caso contrário, irá obter erros ao tentar largar uma base de dados ou adicionar uma coluna nova, etc..

E reiniciar o MySQL

service mysql restart
 5
Author: Joel Davey, 2017-01-24 23:00:23

Com MySql 5.1 (Win7). Para recriar DBs (InnoDbs) eu substituí todo o conteúdo das seguintes dirs (my.ini params):

datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"
Depois disso comecei o serviço MySql e tudo funciona bem.
 2
Author: sergey.olifirenko, 2012-10-29 03:37:20
Sim, é! Basta adicioná-los à sua pasta de base de dados ( dependendo do SO ) e executar um comando como "MySQL corrigir permissões". Isto armazenou a base de dados. Veja também que as permissões corretas também estão definidas nos arquivos.
 1
Author: Filip Ekberg, 2009-01-27 19:05:58
Uma vez copiei estes ficheiros para a pasta de armazenamento de base de dados de uma base de dados mysql que estava a funcionar, iniciei o db e esperei que ele "reparasse" os ficheiros, depois extraí - os com o mysqldump.
 0
Author: Spikolynn, 2009-01-27 19:07:52