Compilando o MYSQL para Depuração
Se você tiver um problema específico, você sempre pode tentar depurar o MariaDB. Para fazer isto você deve configurar o MariaDB com a opção --with-debug
ou --with-debug=full
. Você pode verificar se o MariaDB foi compilado com depuração executando: mysqld --help
. Se o parâmetro --debug
estiver listado entre as opções então você têm a depuração habilitada. mysqladmin ver
também lista a versão do mysqld
como mysql ... --debug
neste caso.
se você estiver usando gcc ou egcs, a configuração recomendada é:
CC=gcc CFLAGS='-O2' CXX=gcc CXXFLAGS='-O2 -felide-constructors \ -fno-exceptions -fno-rtti' ./configure --prefix=/usr/local/mysql \ --with-debug --with-extra-charsets=complex
Isto evitará problemas com a biblioteca libstdc++
e com exceções C++ (muitos compiladores têm problemas com exceções C++ no código da thread) e compila uma versão MariaDB com suporte para todos os conjuntos caracter.
Se você suspeita de um erro despejo de memória, você pode configurar o o MariaDB com --with-debug=full
, que irá instalar verificar de alocação de memória (SAFEMALLOC
). No entanto, a execução com SAFEMALLOC
é um pouco lenta, assim se você tiver problemas de desempenho você deve iniciar o mysqld
com a opção --skip-safemalloc
. Isto disabilitará a verificação de despejo de momória para cada chamada a malloc()
e free()
.
Se o mysqld
parar de falhar quando você compilar com --with-debug
, você provavelmente encontrou um erro de compilação ou erro de tempo dentro do MariaDB. Neste caso você pode tentar adicionar -g
às variáveis CFLAGS
e CXXFLAGS
acima e não usar --with-debug
. Se agora o mysqld
morre, você pode pelo menos executá-lo com gdb
ou usar o gdb
no arquivo core para descobrir que aconteceu.
Quando você configura o MariaDB para depuração você habilita automaticamente diversas funções de vericação de segurança extra que monitora a saúde do mysqld
. Se eles encontrarem algo inesperado
, uma entrada será encrita no stderr
, que mysqld_safe
direciona para o log de erros! Isto também significa que se você estiver tendo alguns problemas inexperados com o MariaDB e estiver usando uma distribuição fonte, a primeira coisa que você deve fazer é configurar o MariaDB para depuração! (A segunda coisa é enviar uma mensagem para a lista de email do MariaDB e pedir ajuda. Leia "As Listas de Discussão do MariaDB". Por favor, use o script mysqlbug
para todos os relatos de bug e questões referentes a versão do MariaDB que você está usando!
Na distribuição do MariaDB para Windows, mysqld.exe
é, por padrão, compilado com suporte a arquivos trace.