Se você têm tabelas corrompidas ou se o
mysqld
sempre falha depois de alguns comendos
de atualização, você pode testar se este erro é
reproduzível fazendo o seguinte:
Desligue o daemon MySQL (com mysqladmin
shutdown
).
Faça um backup das tabelas (para o caso da reparação fazer algo errado)
Verifique todas as tabelas com myisamchk -s
database/*.MYI
. Repare qualquer tabela errada com
myisamchk -r database/table.MYI
.
Faça um segundo backup das tabelas.
Remove (ou mova para outro local) qualquer arquivo de log antigo do diretório de dados se você precisar de mais espaço.
Inicie o mysqld
com
--log-bin
. See
Secção 4.10.4, “O Log Binário”. Se você quiser encontrar uma
consulta que provoque uma falha no
mysqld
, você deve usar --log
--log-bin
.
Quando você obter uma tabela danificada, pare o
servidor mysql
.
Restaure o backup.
Reinicie o servidor mysqld
sem
--log-bin
Re-execute os comandos com mysqlbinlog
update-log-file | mysql
. O log de atualização
está salvo no diretório do banco de dados com o nome
nomemaquina-bin.#
.
Se as tabelas forem corrompidas novamente ou você puder
fazer o mysqld
finalizar com o comando
acima, vcê terá encontrado um erro reproduzível que deve
ser facilmente corrigido! Envie as tabelas e o log binário
por ftp para
ftp://support.mysql.com/pub/mysql/secret/
e coloque-o em nosso sistema de erros em
http://bugs.mysql.com/.
Se você é um consumidor com suporte, você também pode
enviar um email para <support@mysql.com>
para
alertar a equipe do MySQL sobre o problema e tê-lo
corrígido o mais rápido possível..
Você também pode usar o script
mysql_find_rows
para executar algumas das
instruções de atualização se você quiser estreitar o
problema.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.