更新:归档为错误 #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
start mysql
但是,Ubuntu 11.04(或)上的 upstart 作业service start mysql
只是无限期地等待(挂起)而不输出任何内容。 strace 没有告诉我任何信息,但如果有人愿意看一看:strace -fv 启动mysql
我希望mysql
upstart 作业只报告错误并终止,而不是挂起。我该怎么做?
(背景:我有一个带有额外 EBS 卷的 EC2 实例来存储永久数据。如果 EBS 卷在启动时不可用,系统将挂起等待 mysql,我甚至无法通过 SSH 进入它来解决问题 - 所以现在我的实例已经完全无法使用。我希望它能够继续启动,即使没有 MySQL 服务器。)
答案1
作为一种解决方法,您可以更改 /etc/init/mysql.conf 并将“and started ssh”添加到“start on ()”部分。这应该可以防止 mysql 在 ssh 运行之前尝试启动,这样您至少可以修复机器。