/etc/init.d/mysql start が失敗する。

xtrabackupでバックアップしたMySQLデータベースをリストアした後に、起動しようとるすが失敗した。

原因を調べていくと、起動できるコマンドとできないコマンドがあることが分かった。

以下、そのコマンドになる。

なお、いずれもrootユーザで実行。

失敗するコマンド
  • /etc/init.d/mysql start
成功するコマンド
  • su -x /etc/init.d/mysql start
  • /usr/bin/mysqld_safe --datadir='/var/lib/mysql' --pid-file='/var/lib/mysql/www8196u.sakura.ne.jp.pid' >/dev/null 2>&1 & *1

現状わかっていること

  • 失敗する場合、/usr/bin/mysqld_safe の748行目でbreakされ、mysqld_safeのデーモンは終了している
  • 分岐条件は、if test ! -f "$pid_file"なので、mysqldの起動に失敗していると思われる
  • エラーログは、"mysqld_safe mysqld from pid file /var/lib/mysql/localhost.pid ended" のみ
  • リストアする前のデータディレクトリに戻すことで問題なく起動できる

環境情報など

会社で構築した環境下での出来事なので、改めて追記します。

*1:/etc/init.d/mysql start で呼び出されるコマンド