メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

MySQL DB または MariaDB DB から Amazon RDS MySQL または MariaDB DB インスタンスへのデータのインポート

既存の MySQL または MariaDB データベースから Amazon RDS MySQL または MariaDB DB インスタンスにデータをインポートする最も簡単な方法は、mysqldump を使用してデータベースをコピーし、Amazon RDS MySQL または MariaDB DB インスタンスに直接パイプ処理する方法です。mysqldump コマンドラインユーティリティは、データのバックアップや、別の MySQL または MariaDB サーバーへの転送のためによく使用されます。このユーティリティは MySQL および MariaDB クライアントソフトウェアに含まれています。

外部データベースから Amazon RDS DB インスタンスにデータを移動する一般的な mysqldump コマンドは、以下のような内容です。

Copy
mysqldump -u <local_user> \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -p<local_password> | mysql -u <RDS_user> \ --port=<port_number> \ --host=<host_name> \ -p<RDS_password>

重要

-p オプションと入力するパスワードの間にスペースを残していないことを確認します。

使用するパラメータは次のとおりです。

  • -u <local_user> – ユーザー名を指定します。このパラメータの初回の使用では、--databases パラメータによって識別されたローカル MySQL または MariaDB データベースのユーザーアカウントの名前を指定します。

  • --databases <database_name> – Amazon RDS にインポートするローカル MySQL または MariaDB インスタンスのデータベースの名前を指定します。

  • --single-transaction – ローカルデータベースからロードされたすべてのデータが、ある時点において一貫していることを確認します。mysqldump によるデータの読み取り中に他のプロセスがデータを変更する場合は、このオプションを使用するとデータ整合性を維持できます。

  • --compress – ローカルデータベースからのデータを、Amazon RDS に送信する前に圧縮することで、ネットワーク帯域幅の消費量を削減します。

  • --order-by-primary – 各テーブルのデータをプライマリキーでソートすることで、ロード時間を短縮します。

  • -p<local_password> – パスワードを指定します。このパラメータの初回の使用では、最初の -u パラメータにより識別されるユーザーアカウントのパスワードを指定します。

  • -u <RDS_user> – ユーザー名を指定します。このパラメータの 2 回目の使用では、--host パラメータによって識別された Amazon RDS MySQL または MariaDB DB インスタンスのデフォルトデータベースのユーザーアカウントの名前を指定します。

  • --port <port_number> – Amazon RDS MySQL または MariaDB DB インスタンスのポートを指定します。インスタンスの作成時に値を変更していない限り、デフォルトでは 3306 です。

  • --host <host_name> – Amazon RDS DB インスタンスのエンドポイント、たとえば myinstance.123456789012.us-east-1.rds.amazonaws.com からの DNS 名を指定します。エンドポイントの値は、Amazon RDS マネジメントコンソールのインスタンスの詳細で確認できます。

  • -p<RDS_password> – パスワードを指定します。このパラメータの 2 回目の使用では、2 回目の -u パラメータにより識別されるユーザーアカウントのパスワードを指定します。

Amazon RDS データベースで、ストアドプロシージャ、トリガー、関数、イベントを手動で作成する必要があります。コピーするデータベースにこれらのオブジェクトのいずれかが含まれる場合は、mysqldump コマンドにパラメーター --routines=0 --triggers=0 --events=0 を含めることによって、mysqldump の実行時にこれらのオブジェクトを除外します。

次の例では、ローカルホストにある world サンプルデータベースを、Amazon RDS MySQL DB インスタンスにコピーします。

Linux、OS X、Unix の場合:

Copy
sudo mysqldump -u localuser \ --databases world \ --single-transaction \ --compress \ --order-by-primary \ -plocalpassword | mysql -u rdsuser --port=3306 \ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com \ -prdspassword

Windows の場合、次のコマンドは、Windows プログラムメニューの [コマンド プロンプト] を右クリックし、[管理者として実行] を選択して開いたコマンドプロンプトで実行する必要があります。

Copy
mysqldump -u localuser ^ --databases world ^ --single-transaction ^ --compress ^ --order-by-primary ^ -plocalpassword | mysql -u rdsuser ^ --port=3306 ^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com ^ -prdspassword