【保守ヤッテル知人から聞いた話】サーバ再起動したらMySQLが起動しなかった件について
以下、時系列で
・DBのメンテをしようとしたが、telnetでアクセスできず、
そもそもpingも通らなかった。
※DBサーバ、お客様先に設置してあり、リモートでの作業らしい。
・お客様側の担当者に状況連絡と対応依頼。
担当者対応:
・OSハングアップしていた。
※ログイン画面で止まってた。
・OS再起動
・再起動連絡有り、接続したが、DB(mysql)のサービスが停止している様子。
再度、担当者に連絡。
・お客様側の担当者が調査&対応して、復旧
以下は調査結果と対応内容
MySQLのデータベースの保存場所をデフォルト(/var/lib/mysql)から移動した場合に、
Linuxの SELinux が影響して発生する現象のようです。
※保存場所の移動は、サーバ引き渡し後にアプリ開発側で行った作業らしい。
復旧の対応
SELinux を Permissive モードで起動した後、
MySQLの起動を実行。
# setenforce 0
# service mysqld start
mysqld を起動中: [ OK ]
ただし、暫定対応なので、OSを再起動すると毎回、同じ現象が発生する。
恒久対応とするには、SELinux へ適切な許可設定を行う必要が有る。
※もしくは、SELinux をOFFにする。
【参考サイト】
◆MySQL の datadir を標準以外に変更すると起動できなくなる場合
http://network.station.ez-net.jp/os/linux/db/mysql/error/datadir/centos/5.4.asp
◆Linux の SELinux によるセキュリティ設定
http://network.station.ez-net.jp/os/linux/selinux.asp