ウェブサイト検索

MySQL データベースをバックアップ (ダンプ) および復元する方法


この記事では、mysqldump および mysql コマンドを使用して MySQL データベースをダンプおよび復元する適切な方法を説明します。

MySQL または MariaDB データベースを使用している場合は、データのバックアップと復元の方法を理解する必要があります。さらに、データベースのバックアップを定期的に保存する必要があります。これは、システム障害によってアプリケーションやデータが破損した場合にデータを復元するのに役立ちます。

MySQL と MariaDB には、データベースのダンプと復元を迅速かつ簡単に行うために使用できるコマンドライン ツールが含まれています。

たとえば、mysqldump ツールは、データベースの内容をテキスト ファイルにエクスポートするために使用されます。同時に、mysql クライアント アプリを使用して、テキスト ファイルから MySQL/MariaDB データベースにデータをインポートできます。

MySQL データベースをバックアップ (ダンプ) する方法

mysqldump コマンドライン ユーティリティは、データベースを SQL テキスト ファイルにエクスポートします。つまり、MySQL データベースのダンプを取得するために使用されます。

mysqldump コマンドの構文は次のとおりです。

mysqldump -u [username] -p [database_name] > [filename.sql]

どこ :

  • ユーザー名は、MySQL/MariaDB のユーザー名です。
  • -p このユーザーのパスワードの入力を求めます。
  • database_name は、バックアップするデータベースの名前です。
  • filename.sql は、バックアップを含む SQL ダンプ ファイルへのフルパスです。

データベースのプロシージャ、関数、ビュー、イベントがバックアップ時にダンプされることにも言及することが重要です。

単一の MySQL データベースをバックアップする方法

my_wordpress というデータベースがすでに作成されていると仮定します。もちろん、以下のコマンドでは、これをエクスポートするデータベースの名前に置き換えます。

次に、構文に従って、mysqldump は現在の場所にバックアップ ファイルを作成します。

mysqldump -u root -p my_wordpress > my_wordpress_backup.sql

コマンドの実行後、MySQL root パスワードを入力します。

これにより、テーブルを作成し、既存のデータベースにデータを復元するためのすべての SQL ステートメントを含む、my_wordpress_backup.sql という名前の MySQL ダンプ ファイルが作成されます。エクスポート プロセス中にエラーが発生した場合、mysqldump はエラーを画面に出力します。

このコマンドでは視覚的な出力は生成されませんが、head コマンドを使用して my_wordpress_backup.sql の内容を検査し、それが正当な MySQL ダンプ ファイルであるかどうかを確認できます。

head -n 5 my_wordpress_backup.sql
-- MariaDB dump 10.19  Distrib 10.5.9-MariaDB, for Linux (x86_64)
-- Host: localhost    Database: my_wordpress
 
-- Server version    10.3.27-MariaDB-0+deb10u1

複数の MySQL データベースをバックアップする方法

1 つのコマンドで複数の MySQL データベースをバックアップするには、--databases オプションの後にバックアップするデータベースのリストを使用する必要があります。さらに、結果ファイルを任意の場所に置くことができます。

次のコマンドを実行して、my_wordpressftpusers という名前の 2 つのデータベースの /home/backups ディレクトリに MySQL ダンプ ファイル my_backup.sql を作成します。

mysqldump -u root -p --databases my_wordpress ftpusers > /home/backups/my_backup.sql 

すべての MySQL データベースを一度にバックアップする方法

--all-databases オプションを使用して、すべての MySQL データベースをバックアップします。

mysqldump -u root -p --all-databases > all_db_backup.sql

圧縮された MySQL データベース バックアップを作成する方法

データベースのサイズが大きい場合は、出力を圧縮することをお勧めします。これを行うには、出力を gzip コマンドにパイプし、以下に示すようにファイルにリダイレクトします。

mysqldump -u root -p my_wordpress | gzip > my_wordpress_backup.sql.gz

MySQL ダンプ ファイルから MySQL データベースを復元する

mysqldump で作成されたバックアップを復元するには、mysql コマンドを使用する必要があります。

mysql -u [username] -p [database_name] < [filename.sql]

どこ

  • ユーザー名は、MySQL/MariaDB のユーザー名です。
  • -p このユーザーのパスワードの入力を求めます。
  • database_name は、復元するデータベースの名前です。
  • filename.sql は、バックアップを含む SQL ダンプ ファイルへのフルパスです。

単一の MySQL データベースを復元する

特定のデータベースの MySQL ダンプ ファイルからすべてのテーブルを復元できます。

リストアは以下のコマンドで実行します。ここでも、パスワードの入力を求めるユーザーを指定し、my_wordpress_backup.sql ファイルをデータベース my_wordpress に渡します。

mysql -u root -p my_wordpress < my_wordpress_backup.sql

これが完了すると、実行中の MySQL インスタンスでデータベースが使用できるようになります。インポート元の MySQL ダンプ ファイルはまだ存在するため、この時点で安全に保存することも、不要になった場合は削除することもできます。

すべての MySQL データベースを復元する

MySQL ダンプ ファイルから、任意の MySQL サーバーのすべてのデータベースを別の MySQL サーバーに復元できます。

mysql -u root -p < all_db_backup.sql

結論

これで、上記の手順に従って、データベース ファイルの定期的なバックアップを保持し、必要に応じてデータを復元できるようになります。

このチュートリアルは、新しいサーバーに移行する場合にも適用されます。古いサーバー上のデータベースをバックアップし、MySQL ダンプ ファイルを新しいサーバーにアップロードします。

次に、新しいサーバー上に宛先データベースを作成し、アップロードされた MySQL ダンプ ファイルを新しいデータベースで実行します。さらに、古い MySQL サーバーから新しいサーバーにユーザーと権限を再作成する必要もあります。

詳細については、公式ドキュメントへのリンクをご覧ください。ご質問やフィードバックがございましたら、お気軽にコメントを残してください。

関連記事: