quarta-feira, 5 de junho de 2013

Verifique a tabela MySQL

Original post: http://anothermysqldba.blogspot.com/2013/06/mysql-check-table.html
O comando tabelas check MySQL é muito útil para quem quer fazer o seguinte:
  • Verificar compatibilidade de versão
  • Verificação de Consistência de Dados
  • Upgrades
  • Erros gerais Tabela
O processo é bastante simples:

> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| City |
| Country |
| CountryLanguage |
+-----------------+

> check table City\G
*************************** 1. row ***************************
Table: world.City
Op: check
Msg_type: status
Msg_text: OK


Esta é uma boa tarefa para manter-se atualizado em que você está ciente de possíveis erros. Um possível problema é que essa ferramenta realmente se concentra em MyISAM e não InnoDB. Se você usá-lo para InnoDB, o comando "Check mesa" realmente só se aplica quando você adicionar a opção QUICK (ou nenhuma opção). As opções de fast, mudou, médio e largo são todos ignorados para InnoDB. Agora, se você está se perguntando o que acontece com InnoDB? Por que ignorar a consistência dos dados MySQL no motor InnoDB? Respire fundo e relaxe, InnoDB é queixa ACID , ACID é " um acrônimo para atomicidade, consistência, isolamento e durabilidade. " Portanto, não desconsiderar a verificação tabelas InnoDB porque ele ainda pode fornecer algum insight ou confirmação em seus quadros. Tenha em mente que se uma tabela InnoDB era para ser corrompido o servidor será desligado para proteger os dados. Você acabou de receber mais estrondo para seu fanfarrão com tabelas MyISAM e esta ferramenta.

Espero que você obter uma resposta de "OK" ou "Tabela já está atualizado", caso contrário você precisa executar uma mesa de reparo para corrigir a tabela.

Então, quais são as opções disponíveis para nós para que você possa fazer isso muitas vezes e facilmente.
O link para a documentação abaixo também irá fornecer-lhe várias opções automáticas comunidade conduzido. Você pode escrevê-lo o processo e facilmente mostrar tabelas, em seguida, aplicar conferir tabelas para todos os seus resultados. Ele só parece mais fácil de me embora para usar as ferramentas fornecidas por você.


$ mysqlcheck -u root -p --databases world --fast
Enter password:
world.City OK
world.Country OK
world.CountryLanguage OK

$mysqlcheck -u root -p --databases world --fast --check-only-changed
Enter password:
world.City OK
world.Country OK
world.CountryLanguage OK

Agora, esta é simples e direta, mas também se presta a uma outra questão, que sobre a senha?

Se você criar um usuário sem senha que é permitido para verificar as tabelas só assim você não tem que colocar uma senha em seu script ou tarefa cron? Você quer evitar ter a senha sentados em arquivos mysql_history. Bem. Então mais uma vez tirar proveito das ferramentas disponíveis para você. MySQL 5.6 introduziu o utilitário de configuração do MySQL . Eu tenho um exemplo de como configurá-lo em um post anterior:
http://anothermysqldba.blogspot.com/2013/05/mysql-users-grants-mysqlconfigeditor.html

mysqlcheck --login-path=local --databases world --fast --check-only-changed
world.City OK
world.Country OK
world.CountryLanguage OK

$ Mysqlcheck - help irá fornecer uma lista completa de opções disponíveis para você.
Agora, você pode conferir todas as suas mesas, manter suas senhas de arquivo crontab e / ou scripts.

Documentação: