Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  mysqldump による SQL フォーマットでのデータのダンプ

7.4.1 mysqldump による SQL フォーマットでのデータのダンプ

このセクションでは、mysqldump を使用して、SQL フォーマットのダンプファイルを作成する方法について説明します。そのようなダンプファイルのリロードについては、セクション7.4.2「SQL フォーマットバックアップのリロード」を参照してください。

デフォルトで、mysqldump は情報を SQL ステートメントとして標準出力に書き込みます。出力をファイルに保存できます。

shell> mysqldump [arguments] > file_name

すべてのデータベースをダンプするには、--all-databases オプションを付けて mysqldump を呼び出します。

shell> mysqldump --all-databases > dump.sql

特定のデータベースのみをダンプするには、コマンド行でそれらを指定し、--databases オプションを使用します。

shell> mysqldump --databases db1 db2 db3 > dump.sql

--databases オプションによって、コマンド行上のすべての名前がデータベース名として扱われます。このオプションを使用しないと、mysqldump は最初の名前をデータベース名として、そのあとに続く名前をテーブル名として扱います。

--all-databases または --databases を使用すると、mysqldump は、各データベースのダンプ出力の前に、CREATE DATABASE および USE ステートメントを書き込みます。これにより、ダンプファイルがリロードされると、それが各データベースが存在しなければ作成して、デフォルトのデータベースにするため、データベースの内容がそれらの作成元の同じデータベースにロードされます。ダンプファイルに、各データベースを再作成する前にその削除を強制する場合、--add-drop-database オプションも使用します。この場合、mysqldump は各 CREATE DATABASE ステートメントの前に、DROP DATABASE ステートメントを書き込みます。

単一のデータベースをダンプするには、コマンド行でそれを指定します。

shell> mysqldump --databases test > dump.sql

単一のデータベースの場合、--databases オプションを省略できます。

shell> mysqldump test > dump.sql

2 つの先述のコマンドの違いは、--databases を付けないと、ダンプの出力に CREATE DATABASE または USE ステートメントが含まれません。これにはいくつかの問題があります。

  • ダンプファイルをリロードする場合、サーバーがリロードするデータベースを認識するように、デフォルトのデータベース名を指定する必要があります。

  • リロードする場合、元の名前と異なるデータベース名を指定でき、これにより、データを別のデータベースにリロードできます。

  • リロードするデータベースが存在しない場合、まずそれを作成する必要があります。

  • 出力には CREATE DATABASE ステートメントが含まれないため、--add-drop-database オプションは無効です。それを使用しても DROP DATABASE ステートメントは生成されません。

データベースから特定のテーブルのみをダンプするには、コマンド行でデータベース名に続いてそれらを指定します。

shell> mysqldump test t1 t3 t7 > dump.sql

User Comments
Sign Up Login You must be logged in to post a comment.