Назад | Перейти на главную страницу

задание mysql upstart зависает, если каталог базы данных не смонтирован

Обновить: Подано как ошибка # 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 уже не будет запущен, чтобы вы могли хотя бы исправить машину.