MySQL

MySQL

【MySQL】特定のテーブルをバックアップ(ダンプ)する方法

2019/03/29

あまりやりたくない事ですが、プログラム(システム)の都合や仕様上でどうしてもデータベース(のデータ)を直接編集する場面というのがあると思います。その場合の「いつでもデータを元に戻せる体制」をとる際、システムのDBデータを全部バックアップするのでは時間がかかってしまいがち。
ということで、今回は必要テーブルのみダンプする方法を備忘録としてポストしたいと思います。

なお、この作業はSQLではないので、phpMyAdmin上では実行できません。
WindowsならDOSプロンプト、UNIXではputtyなどのターミナルから接続した上での処理となります。

特定のテーブルをバックアップする

単一のテーブルのみをダンプする場合の記述

<文法>

$ mysqldump -u [ユーザー名] -p [データベース名] [テーブル名] > [ダンプファイル名.sql]

例として「shop_manage」データベースの「products」テーブルをダンプする例を記述すると、以下のようになります。

↑ データベースのパスワードはコマンド発行のあとに入力する形です。

コマンド発行時、同時にデータベースパスワードを記述したいときは、オプション「-p」のあとにスペースをつけずにパスワードを書けば、Enter password でパスワードを別途入力する必要はありません。

ダンプ用のコマンドには、シングル、ダブルのクォーテーションマークもつけずに書きましょう。

複数テーブルをまとめてダンプする際の記述

単一の場合とほぼ同じで、単にテーブル名を続けて書くだけ。
やはりこちらもシングル、ダブルのクォーテーションマークはつけずに書きましょう。

文法

$ mysqldump -u [ユーザー名] -p [データベース名] [テーブル名1] [テーブル名2] [テーブル名3]... > [ダンプファイル名.sql]

例として「product_manage」データベースの「products」「sales」「customers」テーブルをダンプする例を記述すると、以下のようになります。
こちらはデータベースパスワードをオプション(-p)に続けて書いてみます。

あっさりとバックアップファイルが出来上がるので、今日から怖いものなしですね。

全てのテーブルをバックアップする

普通に、データベース内の全てのテーブルをバックする方法も載せておきます。

文法

$ mysqldump -u [ユーザー名] -p [データベース名] > ダンプファイル名.sql

下記は一例です。

-MySQL
-, ,