MySQLのデータベースをmysqldumpでバックアップ/復元する方法

本稿では MySQL のデータベースを論理バックアップ/復元する方法について説明します。MySQL データベースのバックアップ/復元には、 mysqldump コマンドを利用します。 mysqldump コマンドは、MySQL をインストールすれば含まれています。

バックアップ

ここでは2通りのバックアップ方法を説明します。

  1. 特定のデータベースのみバックアップする方法
  2. 全てのデータベースをバックアップする方法

 バックアップのコマンドを解説する前に知っておいて欲しい mysqldump コマンドのオプションがあります。 –single-transaction オプションです。 このオプションは InnoDB のトランザクションを利用してバックアップを取得します。 例えばバックアップの対象となるデータが膨大で、バックアップに1時間かかるとしましょう。 そうした場合でもトランザクションを利用してくれるので、バックアップを開始した時点のデータも(1時間後に)終了する間際のデータも全く整合性のとれたデータであることを保証してくれます。 ですので、 –single-transaction オプションは何も考えずにつけておくと良いと思います。

1.特定のデータベースのみバックアップする方法

MySQL の特定のデータベースのデータを dump バックアップするには、次のコマンドで行います。

$ mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名

例えば、DBユーザー root で wordpress という名前のデータベースを /tmp/mysqldump_wordpress.dump というファイル名でバックアップしたい場合は、次のようになります。 実行すると次のようにパスワードを聞かれる(パスワードを設定している場合)ので、パスワードを入力するとバックアップ完了です。

$ mysqldump --single-transaction -u root -p wordpress > /tmp/mysqldump_wordpress.dump
Enter password:

全てのデータベースをバックアップする方法

また、MySQL の全てのデータベースを dump バックアップするには、次のコマンドで行います。

$ mysqldump --single-transaction -u root -p -x --all-databases > 出力ファイル名

オプション -x は、全てのデータベースの全てのテーブルをロックするためのオプションです。 バックアップ中のデータの操作を禁止します。

例えば、DB ユーザー root で全てのデータベースを /tmp/mysqldump_all_database.dump というファイル名でバックアップしたい場合は、次のようになります。

$ mysqldump --single-transaction -u root -p -x --all-databases > /tmp/mysqldump_all_database.dump

復元

次に、上で説明したバックアップファイルを MySQL データベース上に復元する方法について説明します。 上記のバックアップと同様、2通りの復元方法について説明します。

  1. 特定のデータベースのみ復元する方法
  2. 全てのデータベースを復元する方法

1.特定のデータベースのみ復元する方法

特定のデータベースの dump ファイルを、特定のデータベースに復元する方法は次のコマンドでできます。 データの投入先となるデータベースは先に作成しておく必要があります。

$ mysql -u ユーザー名 -p データベース名 < dumpファイル名

例としては次のような感じです。

$ mysql -u root -p wordpress < /tmp/mysqldump_wordpress.dump

2.全てのデータベースを復元する方法

全てのデータベースの dump ファイルを、データベースに復元する方法は次のコマンドでできます。

$ mysql -u ユーザー名 -p < dumpファイル名

例としては次のような感じです。

$ mysql -u root -p < /tmp/mysqldump_all_database.dump

おわりに

本稿では MySQL のデータベースをバックアップ/復元する方法について説明しました。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值