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_wordpress
と ftpusers という名前の 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 サーバーから新しいサーバーにユーザーと権限を再作成する必要もあります。
詳細については、公式ドキュメントへのリンクをご覧ください。ご質問やフィードバックがございましたら、お気軽にコメントを残してください。