Обновить: Подано как ошибка # 812423 на Launchpad.
У меня mysqld указал на внешний том:
$ cat /etc/mysql/conf.d/data_joliss.cnf
[mysqld]
datadir=/mnt/data_joliss/mysql
В целом это работает нормально. Но иногда по какой-то причине том не монтируется. В этих случаях mysqld не работает как следует:
# 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
Однако выскочка в Ubuntu 11.04 (start mysql
или service start mysql
) просто ждет (зависает) бесконечно, ничего не выводя. Strace мне ничего не говорит, но если кто-нибудь захочет взглянуть: strace -fv запустить mysql
Я бы хотел mysql
upstart, чтобы просто сообщить об ошибке и завершить работу, а не зависать. Как мне это сделать?
(Предыстория: у меня есть экземпляр EC2 с дополнительным томом EBS для хранения постоянных данных. Если том EBS недоступен во время загрузки, система зависает в ожидании mysql, и я не могу даже использовать SSH, чтобы решить проблему, поэтому теперь мой экземпляр стал полностью непригодным для использования. Я бы хотел, чтобы он продолжал загружаться даже без сервера MySQL.)
В качестве обходного пути вы, вероятно, могли бы изменить /etc/init/mysql.conf и добавить «и запустил ssh» в раздел «start on ()». Это должно предотвратить попытки запуска mysql до тех пор, пока ssh уже не будет запущен, чтобы вы могли хотя бы исправить машину.