Atualização: Arquivado como bug # 812423 no Launchpad.
Eu tenho o mysqld apontado para um volume externo:
$ cat /etc/mysql/conf.d/data_joliss.cnf
[mysqld]
datadir=/mnt/data_joliss/mysql
Isso está funcionando bem em geral. Mas às vezes o volume não é montado, por qualquer motivo. Nesses casos, o mysqld falha como deveria:
# mysqld
110716 14:17:42 [Warning] Can't create test file /mnt/data_joliss/mysql/opinionated-programmer.lower-test
110716 14:17:42 [Warning] Can't create test file /mnt/data_joliss/mysql/opinionated-programmer.lower-test
mysqld: Can't change dir to '/mnt/data_joliss/mysql/' (Errcode: 2)
110716 14:17:42 [ERROR] Aborting
110716 14:17:42 [Note] mysqld: Shutdown complete
No entanto, o trabalho inicial no Ubuntu 11.04 ( start mysql
ou service start mysql
) simplesmente aguarda (trava) indefinidamente sem produzir nada. O strace não está me dizendo nada, mas se alguém quiser dar uma olhada: strace -fv start mysql
Gostaria que o trabalho de mysql
upstart apenas informasse um erro e terminasse em vez de interrompê-lo. Como faço isso?
(Background: Eu tenho uma instância do EC2 com um volume EBS extra para armazenar dados permanentes. Se o volume do EBS não estiver disponível no momento da inicialização, o sistema trava esperando pelo mysql, e eu não consigo nem SSH nele para consertar o problema - então agora minha instância ficou completamente inutilizável. Eu gostaria que continuasse a inicialização, mesmo sem um servidor MySQL.)