公式サイトには、最低限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
というオプションで無視する方法があります。