🙆

MySQLにてデータ無しのDumpを取得する方法

2024/10/31に公開

概要

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