MySQLのバージョンアップをmysqldumpでやると面倒なので—grantsをつけてみる
こんにちは、DBAのたなかです。
過去のバージョンからMySQL 5.6へのバージョンアップはmysqldump推奨ですが、そうでなくても(複数のメジャーバージョンをまたいだバージョンアップとか)mysqldumpを使わなければならないケースはたまにあります。
…これ、面倒じゃないですか? あ、いや、時間がかかるから面倒っちゃ面倒なんですが、個人的にmysqlスキーマ周りがすごく面倒で。
- 前提として、(—single-transaction || —lock-all-tables) && —all-databases && (—master-data || —dump-slave)でやってます。
- —skip-add-drop-table しておかないとmysqlスキーマ内のテーブルを容赦なくDROPされて再作成されるので、バージョン間でカラムの数が変わったりしていると困る(たまにやる)
- だから—events, —triggers, —routinesみたいに—grantsでGRANT文を打ち込んで欲しい。
- ついでに言うなら、—events, —triggers, —routines, —grantsが揃っていればmysqlスキーマは除外してほしい(とするとINSTALL PLUGINを吐くオプションとCREATE SERVERを吐くオプションも必要か)
mysql.pluginは手で打つ、mysql.serversはまず使っていないとして、取り敢えず—grantsを実装してFeature Requestとして上げてみました。—events(使ってないけど) && —triggers && —routines && —grantsで打ち込んでから、ダンプファイルのmysqlスキーマの部分をごっそり削り取ってから流しています。
取り込まれる見込みが非常に薄い(と思っている)んですが、もしよければ”Affects Me”ください。。