Mysqldump を使用して MySQL データベースをエクスポートする
このチュートリアルでは、mysqldump
ユーティリティを使用して MySQL データベースをエクスポートする方法を説明します。
mysqldump
を使用する構文、そのパラメーター、およびそれを使用する理由を確認します。また、データの有無にかかわらずバックアップを取り、テーブルとデータベースをエクスポートすることにより、このユーティリティを実践します。
このガイドでは、MySQL バージョン 8.0.27 を使用しています。こちらから最新バージョンを入手できます(利用可能な場合)。
mysqldump
を使用した MySQL データベースのエクスポート/バックアップ
この時代では、DATA がすべてです。これが、データベース管理者がデータを安全で 24 時間年中無休で利用できるようにする理由です。データをエクスポートしなければならない、必要な予期しない状況がいくつかあります(データの損失またはデータの障害)。
バックアップを取る方法は、データベースプラットフォームによって異なることに注意してください。ここでは、MySQL データベースのコマンドラインユーティリティである mysqldump
について学習します。
mysqldump
ユーティリティを使用する理由
- 主な理由は、必要に応じてデータベースのバックアップを取ることです。
- データベース構造(データのないデータベース)をエクスポートできます。
- また、単一/多数/すべてのデータベースのバックアップを一度に作成することもできます。
mysqldump
を使用すると、特定のデータベース内の特定のテーブルのバックアップを取ることもできます。- データの有無にかかわらずデータベースをエクスポートするために非常に使いやすいです。
- 作業を完了するための要件に応じて調整できるさまざまなパラメータがあります。
mysqldump
ユーティリティを使用するためのパラメータ
このチュートリアルで使用するコマンドには、いくつかのパラメーターを使用します。-u [username]
と -p [password]
は、MySQL データベースに接続するためのユーザー名とパスワードを提供するために使用されます。-p
の後にパスワードを入力するのではなく、要求されたときにパスワードを入力することをお勧めします(以下の例を参照)。
次に、[option]
が必要な場所を指定できるようになります。たとえば、--no-data
オプションを使用してデータなしでバックアップする必要があります。
その後、[データベース名]
が必要になります。データベースから特定のテーブルをエクスポートする場合は、[データベース名]
の後に [テーブル名]
と書くことができます。
次に、必要に応じて、>
(より大きい)記号を使用してファイルにエクスポートしたり、<
(より小さい)記号を使用して復元したりできます。mysqldump
ここの他の多くのパラメータを学ぶことができます。
バックアップデータベース構造のみ
データベース構造のみをエクスポートしたいシナリオがいくつかあるかもしれません。次に、--no-data
オプションを指定して mysqldump
コマンドを使用できます。
次のコマンドは、person
データベース構造をエクスポートします。
mysqldump -u root -p --no-data person > E:\Backup\person_database_structure.sql
データベースから単一/複数のテーブルをバックアップする
特定のデータベースから特定のテーブルをエクスポートする必要がある場合があります。その場合、mysqldump
を使用すると、そのデータベースから 1つまたは複数のテーブルをバックアップできます。
単一のテーブルをエクスポートするには、データベース名の後にテーブル名を書き込む必要があります。データベース名の後に、複数のテーブルをエクスポートするために多くのテーブル名を書き込むことができます。
# export one table named customer from database named person
mysqldump -u root -p person customer > E:\Backup\customer_table_from_person.sql
# export two tables named customer and employee from database named person
mysqldump -u root -p person customer employee > E:\Backup\customer_employee_from_person.sql
単一/複数/すべてのデータベースのバックアップ
1つだけではなく、すべてのデータベースのバックアップを取ることに焦点を当てた場合はどうなりますか?mysqldump
は、--all-database
オプションを使用して次のように使用できます。
mysqldump -u root -p --all-databases > E:\Backup\all_databases_backup.sql
1つまたは複数のデータベースのみをエクスポートする場合は、次の方法で、--databases
オプションの後にシングルスペースで区切ってデータベース名を書き込むことができます。
mysqldump -u root -p --databases person courses > E:\Backup\person_courses_backup.sql
次のコマンドを使用して、1つのデータベースをエクスポートします。
mysqldump -u root -p person > E:\Backup\person_backup.sql
まとめ
mysqldump
コマンドラインユーティリティについて詳しく学びました。そのパラメータとそれを使用する理由について話しました。また、さまざまなパラメーターを使用して、データの有無にかかわらず、単一または多数のテーブルとデータベースをエクスポートする方法も学習しました。