次の方法はいずれも適切な権限を持っていない場合、実行途中でエラーとなるので注意すること。
方法1: 一つだけのデータベースの場合
mysqldump <your_database_name> \
--skip-lock-tables --no-data \
--triggers \
--events \
--routines \
--skip-add-drop-table \
--skip-add-drop-trigger
出力されるSQLにはデータベースの指定はないため、 mysql
コマンドでインポートする場合には明示的にデータベース名を指定する必要がある。
エクスポート元とインポート元のデータベース名に違うものを使用したい場合に便利。
方法2: 複数のデータベースの場合
mysqldump --databases <your_database_name1> <your_database_name2> \
--skip-lock-tables --no-data \
--triggers \
--events \
--routines \
--skip-add-drop-table \
--skip-add-drop-trigger
出力されるSQLにはデータベース名が記録される(USE <your_database_name1>
, CREATE DATABASE
)ため、 mysql
コマンドでインポートする場合には、エクスポート元のデータベース名がそのまま使用される。
参考
公式ドキュメント