Recentemente encontrei um problema muito distinto no Mysql, nunca tinha visto coisa parecida (talvez por conta do meu tempo com banco de dados, sei lá), mas vamos lá.
O Mysql serve uma aplicação RADIUS (programa de autenticação em rede, no caso o Freeradius) então funciona assim, um usuário loga na rede, aí o Radius pega os dados do usuário, cria uma sessão para ele e registra no banco de dados através de uma tabela chamada radpostauth, nessa tabela são criadas as sessões de cada usuário e cada sessão é identificada por um ID (ou seja, cada ID é único), o meu problema foi que ao criar a sessão, o Mysql não estava fazendo o incremento automático (o que já estava configurado e sempre funcionou). O erro apresentado pelo log do Radius foi o seguinte:
ERROR 1062 (23000): Duplicate entry <ID> for key 'PRIMARY'
E apesar de acusar duplicação na entrada da tabela, a ID "duplicada" não havia sido adicionada. Estudando um pouco, vi que com um comando é possível fazer um "check" da tabela e ver se ela está OK, o comando em questão era o analyze:
ANALYZE TABLE radpostauth;
Com esse comando é possível verificar a integridade da sua tabela, pois ele te mostra o status atual dela e como ela se encontra, no meu caso ela estava corrompida. Após descobrir que a minha tabela estava bichada, eu vi que precisava descobrir qual engine estava sendo usada pelo meu banco, no caso a MyISAM (se no seu caso for innoDB procure outra solução). Depois que consegui todas as informações necessárias, foi a vez do comando de REPAIR, ele é +- assim:
REPAIR TABLE radpostauth;
Note que ele já te dá o status atual da tabela (que provavelmente é positivo). Após o REPAIR, rode novamente o ANALYZE para se segurar que está tudo ok e corra pro abraço!
vlwflw