[MySQL] 簡単!mysqldumpコマンドでMySQL/MariaDBをバックアップ・リストアする方法

MysqlやMariaDBを使用している場合、データのバックアップは非常に重要です。

何らかの問題が発生した場合、バックアップからデータを復元することができます。そのため、定期的にバックアップを取ることは必須です。

今回の記事では、MysqlとMariaDBのデータベースをダンプする方法について解説します。まずは、mysqldumpコマンドを使用してデータベースをバックアップする方法を紹介します。

mysqldumpとは?

mysqldumpは、MariaDBやMySQLデータベースからSQL形式でデータをエクスポートするためのコマンドラインツールです。以下に、基本的な使い方や一般的なオプションを示します。

MySQLのdump(ダンプ)ファイルを取得方法

指定したデータベースのすべてのテーブルのデータと構造が、指定したファイル名で保存出来ます。

 

suコマンドなどで権限のあるユーザにスイッチする必要があるかもしれません。

 

コマンドを実行します。

このコマンドは、MysqlにログインせずにDBサーバ上で実行してください。

mysqldump -u [ユーザー名] -p [データベース名] > [出力ファイル名].sql

これにより、指定したデータベースのデータがSQL形式で出力ファイルに保存されます。パスワードは -p オプションの後に入力します。

出力パスですが、下記のようにフルパスで指定して出力先を指定するのが便利です。

/var/lib/mysql/backup20230304.sql

オプション

  1. –host (-h): データベースサーバーのホスト名を指定します。
    mysqldump -h ホスト名 -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
  2. –port (-P): データベースサーバーのポート番号を指定します。
    mysqldump -h ホスト名 -P ポート番号 -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
  3. –single-transaction: InnoDBテーブルの一貫性を保ちながらデータをダンプします。
    mysqldump --single-transaction -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
  4. –lock-tables: テーブルをロックしてデータをダンプします。--single-transactionと併用しないでください。
    mysqldump --lock-tables -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
  5. –compress: データを圧縮して出力します。
    mysqldump --compress -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
  6. –verbose (-v): 処理の詳細な情報を表示します。
    mysqldump -v -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql

これらは一部の一般的なオプションです。mysqldump --helpを実行して、使用可能なすべてのオプションを確認できます。

dumpのリストア方法

指定したファイルに保存されたデータベースのデータと構造が、指定したデータベースにリストアされます。

リストアするデータベースが存在しない場合は、あらかじめ作成しておく必要があります。

 

こちらもMySQLにログインせずに実行します。

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

注意点

  • バックアップは定期的に行い、複数のバックアップを保存しておくことが望ましいです。
  • バックアップファイルは適切な場所に保存し、セキュリティに留意してください。
  • オプションの選択によってデータベースの動作に影響が出る可能性があるため、慎重に使用してください。

これらの手順と注意点を守ることで、データベースの安全性と復旧の信頼性が向上します。