CentOS6でyumを使ってmysqlからMariaDBにした(なった)話
2013年12月15日 04時27分
yumのサードパーティ製リポジトリ(CentALT)を追加してうっかりyum update時のパッケージリストを流しで確認する程度に更新したらmysqlがMariaDBになった。
yumのログを確認してみるとmysqlが消されてる。
1 2 3 4 5 |
Packages Erased: mysql-libs mysql mysql-server mysql-devel |
mysqlからMariaDBに切り替えるにしても心の準備が整っていなかったので焦る焦る。
とりあえずデーモンが起動していなかったので起動してみる。
1 |
$ service mysqld start |
問題なくMariaDBが起動した。
wordpress、piwik、mediawiki、redmine、自作アプリは問題なく動いてる。
アプリケーション層はあまり意識する必要はないという噂通りに互換性はバッチリだ。
と一安心していたら日時実行しているmysqlバックアップのバッチ処理がコケた。
1 |
mysqldump: Couldn't execute 'show events': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577) |
eventsテーブルがダメージ受けてる?
確認する為にmysql(MariaDB)コンソール使用して以下で確認。
1 2 3 4 5 |
MariaDB [(none)]> use information_schema; Database changed MariaDB [(information_schema)]> select * from events; ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start |
確かにエラーが発生する。
こんな時はmysql_upgradeを使用する。
1 2 3 4 |
$ mysql_upgrade -u root -h localhost -p --verbose ... Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13 |
落ちた。
/var/lib/mysql/mysql_upgrade_infoの中身を見たらバージョンが書かれている1行だけのテキストファイルだった。
所有者がrootでパーミッションが644になってたので所有者をmysqlに変更。
それでもダメだったのでパーミッションを666に変えたらエラーなくコマンドが完了した。
気持ち悪いのでパーミッションは元に戻しておいた。
図らずも流行に乗れた感じ。
yumでenablerepoした時は特に気をつけないといけないという備忘録でした。