【MySQL】特定のテーブルだけをバックアップする方法をわかりやすく解説

MySQL データベース
記事内に広告が含まれています。

MySQLではデータベース全体をダンプ(バックアップ)することが一般的ですが、開発やテスト、移行作業では「特定のテーブルだけをバックアップしたい」というケースも少なくありません。

このポストでは、mysqldumpコマンドを使って特定のテーブルだけを安全かつ効率的にバックアップする方法を、実際のコマンド例を交えながらわかりやすく解説します。

コマンドのオプションや注意点も紹介しているので、MySQLの初心者から中級者まで役立つ内容となっています。

スポンサーリンク

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

あまりやりたくない事ですが、プログラム(システム)の都合や仕様上でどうしてもデータベース(のデータ)を直接編集する場面というのがあると思います。

その場合に「いつでもデータを元に戻せる体制」をとる際、システムの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

下記は一例です。

関連するかもしれないポスト

【徹底解説】phpMyAdminでMySQLテーブルを安全かつ効率的にコピーする完全ガイド
phpMyAdmin を用いて MySQL の テーブル を安全かつ効率的にコピーする方法を、基本的な操作から、大量データへの対応、エラー時の対処法、さらにはより安全な運用に向けたベストプラクティスまで、網羅的に解説します。
MySQLでテーブルにカラムを追加するSQL文の基本と応用
MySQLでテーブルにカラムを追加する方法を解説。ALTER TABLE文の基本から応用まで丁寧に紹介します。

 

タイトルとURLをコピーしました