Em alguns sistemas operacionais, o log de erro irá conter um
stack trace se mysqld
finalizar
inesperadmente. Você pode usá-lo para descobrir onde (e talvez
por que) o mysqld
finalizou. See
Secção 4.10.1, “O Log de Erros”. Para obter um stack trace, você
não deve compilar o mysqld
com a opção
-fomit-frame-pointer
para gcc. See
Secção E.1.1, “Compilando o MYSQL para Depuração”.
Se o arquivo de erro conter algo como o seguinte:
mysqld got signal 11; The manual section 'Debugging a MySQL server' tells you how to use a stack trace and/or the core file to produce a readable backtrace that may help in finding out why mysqld died Attemping backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong stack range sanity check, ok, backtrace follows 0x40077552 0x81281a0 0x8128f47 0x8127be0 0x8127995 0x8104947 0x80ff28f 0x810131b 0x80ee4bc 0x80c3c91 0x80c6b43 0x80c1fd9 0x80c1686
você pode descobrir onde o mysqld
finalizou
fazendo o seguinte:
Copie os números acima em um arquivo, por exemplo
mysqld.stack
.
Faça um arquivo de símbolos para o servidor
mysqld
:
nm -n libexec/mysqld > /tmp/mysqld.sym
Note que a maioria das distribuições binárias do MySQL
(exceto para o pacotes de "depuração" onde as
informações são incluídas dentro dos binários) já
possuem o arquivo acima, chamado
mysqld.sym.gz
. Neste caso você pode
simplesmente desempacotá-lo fazendo:
gunzip < bin/mysqld.sym.gz > /tmp/mysqld.sym
Execute resolve_stack_dump -s /tmp/mysqld.sym -n
mysqld.stack
.
Isto exibirá a onde o mysqld
finalizou.
Se isto não lhe ajuda a descobrir o porque o
mysqld
morreu, você deve fazer um relato
de erro e incluir a saída do comando acima no relatório.
Note no entanto que na maioria dos casos, termos apenas um
stack trace, não nos ajudará a encontrar a razão do
problema. Para estarmos apto a localizar o erro ou fornecer
um modo de contorná-lo, precisariamos, na maioria dos
casos, conhecer a consulta que matou o
mysqld
e de preferência um caso de teste
para que possamos repetir o problema! See
Secção 1.7.1.3, “Como relatar erros ou problemas”.
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.