SELECT権限だけでmysqldumpできることがある

  • 1
    Like
  • 0
    Comment
More than 1 year has passed since last update.

公式サイトには、最低限SELECT, SHOW VIEW, TRIGGER, LOCK TABLESが必要と記載されています。
しかし特定のInnoDBデータベースをmysqldumpする場合、最低限SELECT権限だけで対応できます。

MySQL権限 解説
SHOW VIEW 対象データベースにビューがなければOK
TRIGGER 対象データベースにトリガーがなければOK
存在してもdump不要なら--skip-triggersオプションでOK
LOCK TABLES 対象データベースがInnoDBなら--single-transactionオプションでOK

コマンド例

mysqldump -uyouruser yourdatabase --single-transaction

そのほかに必要なオプションは適宜追加してください。
(追加権限が必要なオプションもあります)

サーバにある全てのデータベースをdumpしたい

追加でロック権限が必要です。MySQL 5.6まではSYSTEM系データベースはMyISAMなので。
SYSTEM系データベースの整合性を保証しなくてよいならロック不要のようです。

ビュー定義は必要ないが、ビューを含むデータベースをdumpしたい

ビューはテーブルに近い扱いなので--ignore-table=table1.viewname1 --ignore-table=table2.viewname2
というオプションで無視する方法があります。