MySQLのバージョンアップをmysqldumpでやると面倒なので--grantsをつけてみる
mysql

MySQLのバージョンアップをmysqldumpでやると面倒なので--grantsをつけてみる

このエントリーをはてなブックマークに追加

こんにちは、DBAのたなかです。

過去のバージョンからMySQL 5.6へのバージョンアップはmysqldump推奨ですが、そうでなくても(複数のメジャーバージョンをまたいだバージョンアップとか)mysqldumpを使わなければならないケースはたまにあります。

…これ、面倒じゃないですか? あ、いや、時間がかかるから面倒っちゃ面倒なんですが、個人的にmysqlスキーマ周りがすごく面倒で。

  1. 前提として、(--single-transaction || --lock-all-tables) && --all-databases && (--master-data || --dump-slave)でやってます。
  2. --skip-add-drop-table しておかないとmysqlスキーマ内のテーブルを容赦なくDROPされて再作成されるので、バージョン間でカラムの数が変わったりしていると困る(たまにやる)
  3. だから--events, --triggers, --routinesみたいに--grantsでGRANT文を打ち込んで欲しい。
  4. ついでに言うなら、--events, --triggers, --routines, --grantsが揃っていればmysqlスキーマは除外してほしい(とするとINSTALL PLUGINを吐くオプションとCREATE SERVERを吐くオプションも必要か)

mysql.pluginは手で打つ、mysql.serversはまず使っていないとして、取り敢えず--grantsを実装してFeature Requestとして上げてみました。--events(使ってないけど) && --triggers && --routines && --grantsで打ち込んでから、ダンプファイルのmysqlスキーマの部分をごっそり削り取ってから流しています。

取り込まれる見込みが非常に薄い(と思っている)んですが、もしよければ"Affects Me"ください。。

Bug #72498 Request for mysqldump's new "--grants" option


名無しのエンジニア
開発合宿に行ってきたのでレポートするよ!in 日光
勉強会などでのセルリアンタワー(GMO Yours)入館ガイド