🙆
MySQLにてデータ無しのDumpを取得する方法
概要
MySQLをDumpする際に普通にDumpする方法だとデータベース内あるいはテーブル内のデータも一緒にDumpが取得されます。
今回は既にデータベース内に顧客情報や個人情報などがあり、データ無しでMySQLをDumpしたい時に使用するコマンドとオプションを紹介します。
MySQLにてデータ無しのDumpを取得する方法
- コマンドは下記の通り。
mysqldump -u "ユーザー名" -p --single-transaction --no-data --routines --events "データベース名" > "命名するDumpファイル名".sql
- オプションについては下記で説明します。
"--single-transaction"オプション
- 簡単に言うとトランザクションを使用し、Dumpを開始した時点のデータとDumpが終了した時点のデータの整合性を保証するオプションです。
"--no-data"オプション
- 簡単に言うとテーブル定義のみダンプを取りたいときに指定するオプションです。テーブルデータをDumpしないように伝えるため、ダンプファイルにはテーブルを作成するステートメントのみが含まれます。
"--routines"オプション&"--events"オプション
- テーブル定義のみのダンプの場合、ストアドルーチンとイベントの定義も含めるには、--routines および --events オプションを追加します。
- ストアドルーチンとは簡単に言うとサーバ上に名前を付けて格納しておけるひと塊のSQLのことです。
- ストアドルーチンはセキュリティーが最重要である場合、一貫したセキュアな環境が得られ、ルーチンによってそれぞれの操作が正しく記録されるようになります。 このようなセットアップでは、アプリケーションおよびユーザーはデータベーステーブルに直接アクセスできませんが、特定のストアドルーチンだけを実行できます。今回は既にデータベース内に顧客情報や個人情報などがあった背景もあり、このオプションを使用しました。
- "--events"オプションはMySQLのイベントスケジューラーに定義されているイベントをダンプに含めるために使用されます。
Discussion