外部の MySQL データベースから Amazon RDS for MySQL DB インスタンスにデータをインポートする
既存の MySQL または MariaDB データベースから RDS for MariaDB または RDS for MySQL DB インスタンスに、データをインポートすることもできます。これは、データベースを mysqldumpmysqldump
コマンドラインユーティリティは、データのバックアップや、MariaDB または MySQL サーバーから別の場所への転送によく使用されます。このユーティリティは、MySQL および MariaDB クライアントソフトウェアに含まれています。
MariaDB 10.5 では、クライアントは mariadb-dumpmariadb-dump
を mysqldump
の代わりに使用する必要があります。
注記
MySQL DB インスタンスを使用して大量のデータをインポートまたはエクスポートする場合、xtrabackup
バックアップファイルと Amazon S3 を使用して Amazon RDS との間でデータを移動する方が信頼性が高く、高速です。詳細については、「Amazon RDS for MySQL DB インスタンスへのバックアップの復元」を参照してください。
Amazon RDS は MariaDB の xtrabackup
、または mariabackup
をサポートしていません。Amazon RDS は、Amazon S3 for MySQL からのインポートのみをサポートしています。
外部のデータベースから Amazon RDS DB インスタンスにデータを移動するための一般的な mysqldump
コマンドは、次の例のようになります。値を自分の情報に置き換えます。MariaDB 11.0.1 以降のバージョンでは、mysqldump
を mariadb-dump
に、mysql
を mariadb
に置き換えます。
mysqldump -u
local_user
\ --databasesdatabase_name
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password
| mysql -uRDS_user
\ --port=port_number
\ --host=host_name
\ -pRDS_password
重要
-p
オプションと入力するパスワードの間にスペースを残していないことを確認します。
セキュリティのベストプラクティスとして、この例に表示されているプロンプト以外の認証情報を指定してください。
次の推奨事項と考慮事項に注意してください。
-
ダンプファイルから次のスキーマを除外します。
-
sys
-
performance_schema
-
information_schema
mysqldump
およびmariadb-dump
ユーティリティは、これらのスキーマをデフォルトで除外します。 -
-
ユーザーや権限を移行する必要がある場合は、再作成するデータ制御言語 (DCL) を生成するツールの使用を検討します。例えば、pt-show-grants
ユーティリティがあります。 -
インポートを実行するには、そのユーザーに DB インスタンスへのアクセスが許可されていることを確認してください。詳細については、「セキュリティグループによるアクセス制御」を参照してください。
使用するパラメータは次のとおりです。
-
-u
- ユーザー名を指定します。このパラメータの初回の使用では、local_user
--databases
パラメータによって識別されたローカル MariaDB または MySQL データベースのユーザーアカウントの名前を指定します。 -
--databases
— Amazon RDS にインポートするローカル MariaDB または MySQL インスタンスのデータベースの名前を指定します。database_name
-
--single-transaction
- ローカルデータベースからロードされたすべてのデータが、ある時点において一貫していることを確認します。mysqldump
によるデータの読み取り中に他のプロセスがデータを変更する場合は、このパラメータを使用することでデータの整合性を維持できます。 -
--compress
- ローカルデータベースからのデータを、Amazon RDS に送信する前に圧縮することで、ネットワーク帯域幅の消費量を削減します。 -
--order-by-primary
- 各テーブルのデータをプライマリキーでソートすることで、ロード時間を短縮します。 -
--routines
− ストアドプロシージャや関数などのルーチンが、コピーするデータベースに存在する場合に使用します。パラメータを0
に設定し、インポートプロセス中にルーチンを除外します。その後、Amazon RDS データベースでルーチンを手動で再作成します。 -
--triggers
− コピーするデータベースにトリガーが存在する場合に使用します。パラメータを0
に設定し、インポートプロセス中にトリガーを除外します。その後、Amazon RDS データベースでトリガーを手動で再作成します。 -
--events
− コピーするデータベースにイベントが存在する場合に使用します。パラメータを0
に設定し、インポートプロセス中にイベントを除外します。その後、Amazon RDS データベースでイベントを手動で再作成します。 -
-p
- パスワードを指定します。このパラメータの初回の使用では、初期のlocal_password
-u
パラメータにより識別されるユーザーアカウントのパスワードを指定します。 -
-u
- ユーザー名を指定します。このパラメータの 2 回目の使用では、RDS_user
--host
パラメータによって識別された MariaDB または MySQL DB インスタンスのデフォルトデータベースのユーザーアカウントの名前を指定します。 -
--port
— MariaDB または MySQL DB インスタンスのポートを指定します。DB インスタンスの作成時に値を変更していない限り、デフォルトでは 3306 です。port_number
-
--host
— Amazon RDS DB インスタンスのエンドポイント、例えばhost_name
myinstance.123456789012.us-east-1.rds.amazonaws.com
からのドメインネームシステム (DNS) 名を指定します。エンドポイントの値は、Amazon RDS コンソールの DB インスタンスの詳細で確認できます。 -
-p
- パスワードを指定します。このパラメータの 2 回目の使用では、2 回目のRDS_password
-u
パラメータにより識別されるユーザーアカウントのパスワードを指定します。
Amazon RDS データベースで、ストアドプロシージャ、トリガー、関数、イベントを必ず手動で作成してください。これらのオブジェクトのいずれかがコピー対象のデータベースに含まれている場合は、mysqldump
または mariadb-dump
の実行時に除外します。これを行うには、mysqldump
または mariadb-dump
コマンドに次のパラメータを含めます。
-
--routines=0
-
--triggers=0
-
--events=0
例
次の例では、ローカルホストにある world
サンプルデータベースを、RDS for MySQL DB インスタンスにコピーします。値を自分の情報に置き換えます。サンプルデータベースを RDS for MariaDB DB インスタンスにコピーするには、mysqldump
を mariadb-dump
に、mysql
を mariadb
に置き換えます。
Linux、macOS、Unix の場合:
sudo mysqldump -u
local_user
\ --databasesworld
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password
| mysql -urds_user
\ --port=3306
\ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com
\ -pRDS_password
Windows の場合:
Windows プログラムメニューの [コマンドプロンプト] を右クリックし、[管理者として実行] を選択して開いたコマンドプロンプトで次のコマンドを実行します。値を自分の情報に置き換えます。サンプルデータベースを RDS for MariaDB DB インスタンスにコピーするには、mysqldump
を mariadb-dump
に、mysql
を mariadb
に置き換えます。
mysqldump -u
local_user
^ --databasesworld
^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocal_password
| mysql -uRDS_user
^ --port=3306
^ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com
^ -pRDS_password
注記
セキュリティのベストプラクティスとして、例に表示されているプロンプト以外の認証情報を指定します。