Eu me sinto razoavelmente confiante de que não há nada errado com a sua instalação do MySQL, e é por isso que reparar as tabelas não mostra nenhum problema. Esses são artefatos do problema real:
Você simplesmente não tem memória suficiente em sua máquina para fazer tudo o que está tentando fazer.
Da sua configuração:
key_buffer = 384M
Entre isso e o padrão para innodb_buffer_pool_size de 128M, isso é 512M que tem que estar disponível o tempo todo e se ele não puder ser alocado na inicialização ou reinicialização do MySQL, ele não irá iniciar.
131210 13:06:25 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
131210 13:06:25 InnoDB: Completed initialization of buffer pool
131210 13:06:25 InnoDB: Fatal error: cannot allocate memory for the buffer pool
131210 13:06:25 [ERROR] Plugin 'InnoDB' init function returned error.
Este não é um travamento do MySQL - o MySQL está falhando ao iniciar - ou reiniciar - porque não há 128 MB de memória livre disponível para alocar.
Erro 12 é "Memória insuficiente" - memória do sistema.
As outras mensagens no seu registro de erros são essencialmente efeitos colaterais.
Eu suspeito que também no seu log você verá isso:
YYMMDD HH:MM:SS mysqld_safe Number of processes running now: 0
Se essa mensagem de erro não for imediatamente precedida por um despejo de memória ("MySQL detectou sinal xx" seguido por um rastreio de pilha e muitas informações de depuração) então não é provável que ocorra uma falha no MySQL - é o MySQL ser morto pelo kernel para tentar evitar que o sistema inteiro falhe devido a uma situação de crise relacionada à memória disponível. O modelo de bifurcação do Apache é notório por isso - quando seu site se torna ocupado, o Apache gera mais filhos, cada um com um apetite por memória.
Você provavelmente encontrará evidências disso em seus syslogs.
Xxx xx xx:xx:xx [machine name] kernel: Out of memory: Killed process xxxx, UID xx, (mysqld).
As opções são adicionar mais memória, ou reduzir o consumo de memória do MySQL via configuração, ou reduzir o número de filhos que o Apache pode gerar, ou eliminar outros processos do sistema, ou separar o banco de dados e servidor web em máquinas diferentes ou adicionar mais troca - mas uma máquina do MySQL que está trocando não terá um desempenho ideal.
Para cenários semelhantes, consulte também: