Ubuntuでmysqlをapt-get dist-upgradeしたらエラーが出る
なんかCentOSのSElinux並にひっかかんじゃないのかこれ・・
環境 Ubuntu 12.04 LTS
MySQLのデータ設置ディレクトリを既存とは別のとこに設定
apparmor使ってればどのOSでも起きそう
症状 apt-get dist-upgradeでmysql-server周りの更新に失敗する(=起動できなくなる)
原因 apparmorの設定が更新されて、別のディレクトリを見に行ってくれなくなった。
判別方法、対策
apt-get dist-upgradeでmysql-serverがerrorを返す
コンソールログから、mysql自体が正常に立ち上がらなくなっていることを確認
次にmysql自体を単独で立ち上げてみる。
$ sudo /etc/init.d/mysql start
..
失敗
次にdmesgでログを見る。
init: mysql main process (14979) terminated with status 1
type=1400 audit(1397156184.744:116): apparmor="DENIED" operation ="open" parent=1 profile="/usr/sbin/mysqld" name="...
とかでてくる。ここまでくればapparmorに問題があるのがわかるので、/etc/apparmor.d/usr.sbin.mysqlとかを編集。ちょうどupgrade前のも残ってくれてるのでそこから必要な箇所を移す。自分の場合はこんな感じ。
/data2/mysql/ r,
/data2/mysql/** rwk,
編集したらmysqlを単独起動。OKならばdist-upgrade。