como: resgatar dados do MySQL (somente arquivos restantes no disco rígido)

como: resgatar dados do MySQL (somente arquivos restantes no disco rígido)

Depois de finalmente conseguir atualizar meu servidor virtual debian de etch para lenny. (Leia aqui a história completa:debian: atualização de etch para lenny falha)

Agora perdi os dados (incluindo todas as tabelas) do meu banco de dados MySQL. Os arquivos ainda estão presentes no disco rígido e o phpMyAdmin (mais conhecido como PMA) ainda mostra todos os nomes dos bancos de dados, mas sem nenhuma tabela. Os bancos de dados 'mysql' e ''information_schema' ainda possuem suas tabelas. Mas acessar, por exemplo, 'mysql.user' me dá o seguinte erro:

#1017 - Can't find file: './mysql/user.frm' (errno: 13) 

Claro (como qualquer1337 PEBKACfaz) Não tenho um arquivo de despejo MySQL. (usando a palavra F várias vezes)

Alguém conhece uma ferramenta que possa restaurar os dados perdidos da estrutura do arquivo?

Agradecemos antecipadamente por qualquer ajuda concedida a esse problema da camada 8, também conhecido como eu

Responder1

SE você tiver os arquivos, poderá visualizar os dados (exceto tabelas innodb). Este erro é comumente dado quando você tem um problema de permissão - tente alterar os arquivos /var/lib/mysql para mysql:mysql e veja se isso resolve.
chown -R mysql:mysql /var/lib/mysql

Responder2

Primeiras coisas primeiro: não entre em pânico. Muito provavelmente nem tudo está perdido, você só precisa descobrir o que aconteceu.

  • O caminho do diretório de dados MySQL mudou durante a atualização? (Acho que não - se não me falha a memória, tanto Etch quanto Lenny servem coisas de /var/lib/mysql por padrão. Mas se você alterou o caminho anteriormente manualmente, então algo pode ter acontecido)

  • Se você fizer cd para seu /var/lib/mysql, poderá encontrar o diretóriomysqle o arquivousuário.frmembaixo dele? Se não conseguir, find / -iname 'user.frm'retorna alguma coisa?

  • Há algo digno de nota abaixo/var/log, especialmente sob/var/log/mysql?

Se tudo mais falhar, configure outra instalação do Debian em algum outro computador (ou máquina virtual), instale um Debian Etch lá, copie seu diretório de dados MySQL lá e veja se funciona. Em seguida, execute um bommysqldumpe restaure isso em seu novo Lenny.

EDITAR:Ok, isso foi apenas um problema de permissão. De qualquer forma, deixarei minha resposta aqui, caso isso ajude alguém.

Responder3

Bem, um par de coisas:

Primeiro, faça backup dos arquivos que você possui atualmente. Algumas das operações podem fazer modificações nelas, então você não quer ficar pior do que está agora.

Presumo que seu diretório de dados atual tenha um mysql/user.frmarquivo. Se for esse o caso, o problema é que a nova versão do MySQL está procurando seus dados no lugar errado. Confira adocumentação sobremy.cnf, especificamente a parte sobre DATADIR. Você pode alterar o datadir padrão para apontar para seu conjunto de arquivos antigo. Depois de fazer isso, você desejará executar o comando mysql_upgradepara verificar suas tabelas e atualizar qualquer estrutura da tabela. Veja a documentação.

Se não houver nenhum mysql/user.frmarquivo no seu diretório de dados, algo deu errado. Você precisará concluir manualmente a instalação novamente (não reinstalar, apenas as etapas pós-instalação). Para fazer isso, execute o programamysql_install_db. Isso deve restaurar as tabelas do usuário. Observe que você perderá todas as informações de autenticação (visto que elas já desapareceram, pois user.frm não existe).

Vou deixar por isso mesmo por enquanto, considerando que até que você escolha uma dessas rotas, não poderei ajudar mais. Deixe-me saber qual você escolheu e tentarei continuar ajudando da melhor maneira que puder.

Responder4

estes são arquivos de índice que eles podem ser geradosreparo mysql

Faça backup dos arquivos mysql e no phpmyadmin insira a consulta:

REPAIR TABLE tbl_name [, tbl_name] USE_FRM;

O Mysql irá repará-lo.

informação relacionada