Note que antes de iniciarmos o mysqld
com
--log
você deve verificar todas as suas
tabelas com myisamchk
. See
Capítulo 4, Administração do Bancos de Dados MySQL.
Se o mysqld
morre ou trava, você deve
iniciar o mysqld
com --log
.
Quando o mysqld
morre de novo, você pode
examinar o fim do arquivo de log para a consulta que matou o
mysqld
.
Se você estiver usando --log
sem um nome de
arquivo, o log é armazenado no diretório do banco de dados
como 'nomemaquina'.log. Na maioria dos casos é a última
consulta no arquivo de log que matou mysqld
,
mas se possível você deve verificar isto reiniciando o
mysqld
e executando a consulta encontrada por
meio da ferramenta de linha de comando mysql
.
Se isto funcionar, você também deve testar todas as consultas
complicadas que não completaram.
Você também pode tentar o comando EXPLAIN
em todas as instruções SELECT
que levam
muito tempo para assegurar que o mysqld
está
usando índices apropriados. See Secção 5.2.1, “Sintaxe de EXPLAIN
(Obter informações sobre uma
SELECT
)”.
Você pode encontrar as consultas que levam muito twempo para
executar iniciando o mysqld
com
--log-slow-queries
. See
Secção 4.10.5, “O Log para Consultas Lentas”.
Se você encontrar o texto mysqld restarted
no arquivo de registro de erro (normalmente chamado
hostname.err
) você provavelmente encontrou
uma consulta que provocou a falha no mysqld
.
Se isto acontecer você deve verificar todas as suas tabelas com
myisamchk
(see
Capítulo 4, Administração do Bancos de Dados MySQL) e testar a
consulta no arquivo de log do MySQL para ver se ela não
funcionou. Se você encontrar tal consulta, tente primeiro
atualizar para uma versão mais nova do MySQL. Se isto não
ajudar e você não puder encontrar nada no arquivo de mensagem
mysql
, você deve relatar o erro para uma
lista de email do MySQL. As listas de email estão descritas em
http://lists.mysql.com/,
que também possui os links para as listas de arquivos online.
Se você iniciou o mysqld
com
myisam-recover
, o MySQL verificará
automaticamente e tentará reparar as tabelas
MyISAM
se elas estiverem marcadas como 'não
fechadas apropriadamente' ou 'com falha'. Se isto acontecer, o
MySQL irá escrever uma entrada 'Warning: Checking
table ...'
no arquivo
nomemaquina.err
, a qual é seguida por
Warning: Repairing table
se a tabela precisar
ser reparada. Se você obter vários desses erros, sem que o
mysqld
finalize inesperadamente um pouco
antes, então algo está errado e precisa ser investigado
melhor. See Secção 4.1.1, “Opções de Linha de Comando do mysqld
”.
É claro que não é um bom sinal se o mysqld
morreu inesperadamente, mas neste caso não se deve invwestigar
as mensagens Checking table...
e sim tentar
descobrir por que o mysqld
morreu.
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.