All Products
Search
Document Center

ApsaraDB RDS:Migrasi data MySQL menggunakan mysqldump

Last Updated:May 13, 2026

Anda dapat menggunakan utilitas mysqldump untuk melakukan migrasi instans MySQL yang dikelola sendiri ke ApsaraDB RDS for MySQL. Metode ini cocok untuk database kecil atau skenario yang dapat mentolerir periode downtime yang panjang. Utilitas ini mengekspor skema dan data dari database yang dikelola sendiri ke file teks berisi pernyataan SQL untuk membuat objek dan memasukkan data, sehingga memastikan integritas dan konsistensi data.

Prasyarat

Anda telah mengonfigurasi daftar putih alamat IP, mengaktifkan titik akhir publik, serta membuat database dan akun untuk instans ApsaraDB RDS for MySQL Anda. Untuk informasi selengkapnya, lihat Quick start.

Informasi latar belakang

Karena ApsaraDB RDS for MySQL sepenuhnya kompatibel dengan MySQL asli, migrasi data dari instans MySQL yang dikelola sendiri ke instans ApsaraDB RDS for MySQL mirip dengan migrasi data antara dua server MySQL.

Catatan

Skenario

Lakukan migrasi data dari instans MySQL yang dikelola sendiri ke instans ApsaraDB RDS for MySQL.

Catatan penggunaan

Secara default, saat Anda melakukan migrasi database dari instans MySQL yang dikelola sendiri ke ApsaraDB RDS, semua nama tabel akan diubah menjadi huruf kecil. Untuk menjadikan nama tabel case-sensitive pada instans ApsaraDB RDS for MySQL, gunakan salah satu metode berikut.

  • Saat Anda membuat instans ApsaraDB RDS for MySQL atau membuat instans ApsaraDB RDS for MySQL Serverless, atur parameter Table Name Case Sensitivity menjadi Case-sensitive.

  • Untuk instans yang sudah ada, Anda dapat mengatur parameter instans lower_case_table_names ke nilai 0 agar nama tabel menjadi case-sensitive.

    Peringatan
    • Setelah Anda mengatur parameter lower_case_table_names ke 0, jangan ubah kembali nilainya menjadi 1. Jika tidak, perubahan ini dapat menyebabkan error ERROR 1146 (42S02): Table doesn't exist dan mengganggu layanan Anda.

    • Untuk instans ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 atau 8.4, Anda harus mengatur parameter ini saat pembuatan instans karena nilainya tidak dapat diubah setelahnya.

Prosedur

Prosedur berikut menggunakan sistem operasi Linux sebagai contoh. Anda juga dapat menjalankan perintah mysqldump di Terminal pada macOS atau di Command Prompt pada Windows.

  1. Gunakan mysqldump untuk mengekspor data, prosedur tersimpan, pemicu, dan fungsi dari instans MySQL yang dikelola sendiri.

    Penting
    • Jangan memperbarui data selama proses ekspor. Tunggu hingga ekspor selesai.

    • Akun pengguna dalam perintah berikut harus memiliki izin yang diperlukan. Untuk informasi selengkapnya tentang cara mengonfigurasi izin, lihat Permission settings.

    1. Di antarmuka baris perintah (CLI) Linux, jalankan perintah berikut untuk mengekspor data database:

      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <source_database_name> --skip-triggers --skip-lock-tables > /tmp/<source_database_name>.sql
      Catatan

      Jika Anda perlu menggunakan mysqldump untuk mengekspor data dari instans ApsaraDB RDS for MySQL, ganti titik akhir, akun, kata sandi, dan nama database dalam perintah tersebut dengan informasi instans ApsaraDB RDS for MySQL Anda.

      Contoh

      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers --skip-lock-tables > /tmp/testdb.sql
    2. Di CLI Linux, jalankan perintah berikut untuk mengekspor prosedur tersimpan, pemicu, dan fungsi:

      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <source_database_name> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/<source_database_name>Trigger.sql

      Contoh

      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdbTrigger.sql
      Catatan

      Jika database Anda tidak menggunakan prosedur tersimpan, pemicu, atau fungsi, Anda dapat melewati langkah ini.

  2. Unggah kedua file yang diekspor ke instans ECS. Dalam contoh ini, file diunggah ke direktori /tmp.

    Catatan

    Jika database yang dikelola sendiri Anda sudah berada di instans ECS, Anda dapat melewati langkah ini.

    result

  3. Impor file yang diekspor ke instans ApsaraDB RDS for MySQL tujuan:

    mysql -h <rds_instance_endpoint> -P <rds_instance_port> -u <rds_instance_account> -p <destination_database_name> < /tmp/<source_database_name>.sql
    mysql -h <rds_instance_endpoint> -P <rds_instance_port> -u <rds_instance_account> -p <destination_database_name> < /tmp/<source_database_name>Trigger.sql
    Catatan
    • Database tujuan harus merupakan database yang sudah ada pada instans ApsaraDB RDS for MySQL. Untuk membuat database, lihat Database management.

    • Akun untuk instans ApsaraDB RDS for MySQL harus merupakan akun istimewa atau memiliki izin baca dan tulis.

    Contoh

    mysql -h rm-bpxxxxx.mysql.rds.aliyuncs.com -P 3306 -u testuser -p testdb  < /tmp/testdb.sql
    mysql -h rm-bpxxxxx.mysql.rds.aliyuncs.com -P 3306 -u testuser -p testdb  < /tmp/testdbTrigger.sql
  4. Setelah impor selesai, login ke database ApsaraDB RDS for MySQL menggunakan DMS untuk memverifikasi data yang diimpor.