すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:mysqldump を使用したセルフマネージド MariaDB データベースから ApsaraDB RDS for MariaDB への移行

最終更新日:Jun 21, 2026

mysqldump ツールを使用して、セルフマネージド MariaDB データベースから ApsaraDB RDS for MariaDB インスタンスにデータを移行します。

背景情報

ApsaraDB RDS for MariaDB は、ネイティブ MariaDB と完全に互換性があります。そのため、RDS インスタンスへのデータベース移行は、2 つの MariaDB サーバー間でのデータ移行と同様です。

このトピックでは、Linux 7 および MariaDB 10.2.4 で実行されているセルフマネージドデータベースを例として使用します。

注意事項

移行後、テーブル名は小文字に変換され、大文字と小文字を区別しなくなります。

前提条件

ApsaraDB RDS for MariaDB インスタンスで、IP アドレスホワイトリストの設定パブリックエンドポイントの申請が完了している必要があります。

操作手順

  1. クライアントツールを使用してApsaraDB RDS for MariaDB インスタンスに接続し、空のデータベースを作成します。この例では、データベース名は test001 です。MySQL-Front クライアントで MariaDB インスタンスに接続し、[SQL エディター]create database test001; コマンドを実行して、ターゲットデータベースを作成します。コマンドの実行後、左側のデータベースリストに [test001] データベースが表示されます。

  2. ローカルの Linux サーバーにログインし、mysqldump ツールを使用してデータベースのデータをデータファイルにエクスポートします。

    mysqldump -h localhost -u <source_username> -p --opt --default-character-set=utf8 --hex-blob <source_database_name> --skip-triggers > /tmp/<source_database_name>.sql

    例:

    説明

    次の例の user アカウントには、特定の権限が必要です。詳細については、権限設定をご参照ください。

    mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers > /tmp/testdb.sql
    重要

    エクスポート中は、データの更新を行わないでください。この手順では、データベースのデータのみをエクスポートし、ストアドプロシージャ、トリガー、ファンクションはエクスポートされません。

  3. mysqldump を使用して、ストアドプロシージャ、トリガー、ファンクションをエクスポートします。

    mysqldump -h localhost -u <source_username> -p --opt --default-character-set=utf8 --hex-blob <source_database_name> -R | sed -e 's/DEFINER[ ]*=[ ]*`[^`]*`@`[^`]*`//' > /tmp/<source_database_name>_trigger.sql

    例:

    mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*`[^`]*`@`[^`]*`//' > /tmp/testdb_trigger.sql
    説明

    データベースでストアドプロシージャ、トリガー、ファンクションを使用していない場合は、この手順をスキップしてください。これらのオブジェクトをエクスポートする際は、ApsaraDB RDS for MariaDB との互換性のため、DEFINER 句を削除します。

  4. 次のコマンドを実行して、エクスポートしたファイルを移行先の ApsaraDB RDS for MariaDB インスタンスにインポートします。

    mysql -h <rds_public_endpoint> -P <rds_port> -u <privileged_account> -p <target_database_name> < /tmp/<source_database_name>.sql
    mysql -h <rds_public_endpoint> -P <rds_port> -u <privileged_account> -p <target_database_name> < /tmp/<source_database_name>_trigger.sql

    例:

    mysql -h rm-bpxxxxx.mariadb.rds.aliyuncs.com -P 3306 -u testuser -p test001 < /tmp/testdb.sql
    mysql -h rm-bpxxxxx.mariadb.rds.aliyuncs.com -P 3306 -u testuser -p test001 < /tmp/testdb_trigger.sql
  5. クライアントツールを更新し、移行先のデータベースのテーブルを確認して、データが正常に移行されたことを確かめます。