"tbl_name.frm" arquivo de definição de tabela (tabela) "tbl_name. MYD "Arquivo de Dados" tbl_name. Arquivo índice de MYI" Cada um desses 3 tipos de arquivo pode sofrer diferentes formas de corrupção, mas o problema ocorre mais frequentemente em arquivos de dados e arquivos de índice. Myisamchk cria um ". MYD" (dados) para funcionar, ele funciona removendo o antigo ". MYD e renomeie o novo arquivo para o nome original para encerrar a fase de reparo. Se você usar --quick, myisamchk não cria um "temporary ". MYD", só assumindo". MYD" está correto e só cria um novo arquivo de índice, sem tocar". MYD", que é seguro porque myisamchk detecta automaticamente". MYD" está corrompido e, nesse caso, abandono do reparo. Você também pode dar ao meu isamchk duas — opções rápidas. Nesse caso, myisamchk não desiste de alguns erros (como teclas repetidas), mas tenta modificar o ". MYD" para resolvê-los. Normalmente, só é útil se você implementar uma correção normal com pouco espaço livre em disco, usando as duas opções rápidas. Nesse caso, você deveria pelo menos fazer um backup antes de rodar o myisamchk. 1. Como verificar os erros na tabela Para verificar uma tabela, use o seguinte comando: meu isamchk tbl_name Isso detecta 99,99% de todos os erros. O que ele não consegue descobrir é que corrupção está envolvida apenas em arquivos de dados (o que é incomum). Se quiser verificar uma tabela, geralmente deve rodar myisamchk sem a opção ou usar qualquer uma das opções -s ou --silent. myisamchk -e tbl_name Ele faz uma verificação completa dos dados (-e significa "verificação estendida"). Ele faz uma verificação de leitura por chave em cada linha para confirmar que elas apontam para a linha correta. Isso pode levar muito tempo em uma mesa grande com muitas teclas. O MyISAMCHK geralmente para depois de encontrar o primeiro erro. Se quiser mais informações, pode adicionar a opção --verbose(-v). Isso faz com que o myisamchk continue até um máximo de 20 erros. No uso geral, um myisamchk simples (sem argumentos além do nome da tabela) é suficiente. minha isamchk -e -i tbl_name Como no comando anterior, mas a opção -i diz para myisamchk imprimir algumas estatísticas também. 2. Como consertar a mesa O sintoma de uma tabela corrompida geralmente é uma quebra inesperada de consulta, e você pode ver, por exemplo, estes erros: "tbl_name.frm" está bloqueado e não pode ser alterado. Não consigo encontrar o arquivo "tbl_name. MYI"(Errcode :### )。 Obtenha o erro ### do processador de tabela (neste caso, o erro 135 é uma exceção). Fim inesperado do arquivo. Arquivos de registros foram destruídos. Nesses casos, você deve consertar a mesa. O myisamchk geralmente detecta e corrige a maioria das coisas que dão errado. O processo de reparo consiste em até 4 etapas, descritas abaixo. Antes de começar, você deve transferir permissões para o diretório do banco de dados e para os arquivos da checklist para garantir que eles sejam legíveis para usuários Unix que rodam MySQL (e para você, pois precisa acessar o arquivo que está verificando). Se ele se recusar a modificar o arquivo, eles também devem ser graváveis para você. Fase 1: Confira sua tabela Corre meu isamchk *. MYI ou (myisamchk -e *. Sei lá, se você tiver mais tempo). Use a opção -s (silêncio) para desabilitar informações desnecessárias.
O formato de arquivo usado pelo MySQL para armazenar dados foi extensivamente testado, mas sempre existem condições externas que podem causar corrupção das tabelas do banco de dados: o processo mysqld é encerrado em uma única escrita; Um desligamento inesperado do computador (por exemplo, se o computador perder energia); Um erro de hardware. Este capítulo descreve como verificar e lidar com corrupção de dados em um banco de dados MySQL. Se sua mesa está muito danificada, tente descobrir o motivo! Veja G.1 Depurando um servidor MySQL. Ao realizar a recuperação de falhas, é importante entender que cada tabela em um banco de dados tbl_name corresponde aos 3 arquivos do diretório do banco de dados |