All Products
Search
Document Center

ApsaraDB RDS:Opsi mysqldump untuk ApsaraDB RDS for MySQL

Last Updated:Apr 22, 2026

Fitur GTID

MySQL 5.6 memperkenalkan fitur Global Transaction Identifier (GTID). Akibatnya, utilitas mysqldump pada MySQL 5.6 dan versi yang lebih baru menyertakan opsi set-gtid-purged.

Parameter

Default

Nilai

Deskripsi

set-gtid-purged

AUTO

ON|OFF|AUTO

Mengontrol apakah pernyataan SET @@GLOBAL.GTID_PURGED disertakan dalam output.

Catatan
  • ON: Menyertakan pernyataan SET @@GLOBAL.GTID_PURGED dalam output mysqldump.

  • OFF: Tidak menyertakan pernyataan SET @@GLOBAL.GTID_PURGED dalam output mysqldump.

  • AUTO: Nilai default. Menyertakan pernyataan SET @@GLOBAL.GTID_PURGED jika GTID diaktifkan pada instans sumber; jika tidak, informasi GTID tidak disertakan.

Oleh karena itu, saat menggunakan mysqldump dari MySQL 5.6 atau versi yang lebih baru untuk mengekspor data dari instans ApsaraDB RDS for MySQL 5.5, Anda harus mengatur set-gtid-purged ke OFF. Jika tidak, salah satu error berikut akan terjadi:

Error: Server has GTIDs disabled.
or
mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’ <1193>

Menghindari penundaan lock tingkat tabel

Secara default, mysqldump mengaktifkan opsi lock-tables, yang menerapkan lock tingkat tabel pada tabel yang diekspor dan memblokir operasi Data Manipulation Language (DML) pada tabel tersebut.

Mesin penyimpanan InnoDB dan TokuDB, yang didukung secara default pada instans ApsaraDB RDS for MySQL, keduanya mendukung transaksi. Kami merekomendasikan penggunaan opsi single-transaction untuk mengekspor data, bukan opsi lock-all-tables atau lock-tables.

Parameter

Default

Nilai

Deskripsi

lock-all-tables

FALSE

TRUE|FALSE

Memperoleh global read lock selama proses ekspor. Hal ini membuat semua tabel di semua database menjadi read-only. Opsi ini secara otomatis menonaktifkan opsi lock-tables dan single-transaction. Opsi ini tidak didukung oleh ApsaraDB RDS for MySQL.

lock-tables

TRUE

TRUE|FALSE

Mengunci tabel yang diekspor selama proses ekspor. Opsi ini diaktifkan secara default. Untuk menonaktifkannya, gunakan opsi skip-lock-tables.

single-transaction

FALSE

TRUE|FALSE

Menjalankan ekspor dalam satu transaksi. Opsi ini secara otomatis menonaktifkan opsi lock-tables.

Mengatur set karakter ekspor

Jika tidak ditentukan, mysqldump secara default menggunakan UTF8.

Parameter

Default

Nilai

Deskripsi

default-character-set

UTF8

Set karakter yang didukung oleh instans

Mengatur set karakter untuk ekspor.

Opsi ekspor lainnya

Parameter

Default

Nilai

Deskripsi

no-defaults

NA

NA

Tidak membaca file opsi apa pun, kecuali .mylogin.cnf.

defaults-file=file_name

NA

NA

Hanya membaca file opsi yang ditentukan.

add-drop-database

FALSE

TRUE|FALSE

Menambahkan pernyataan DROP DATABASE sebelum setiap pernyataan CREATE DATABASE.

add-drop-table

TRUE

TRUE|FALSE

Menambahkan pernyataan DROP TABLE sebelum setiap pernyataan CREATE TABLE. Opsi ini diaktifkan secara default. Untuk menonaktifkannya, gunakan opsi skip-add-drop-table.

add-locks

TRUE

TRUE|FALSE

Menyisipkan setiap dump tabel di antara pernyataan LOCK TABLES dan UNLOCK TABLES. Hal ini dapat mempercepat impor data saat memuat ulang file dump.

compatible=name

NA

ansi|postgresql|oracle|mssql

Menghasilkan output yang lebih kompatibel dengan tipe database yang ditentukan.

compact

FALSE

TRUE|FALSE

Mengaktifkan opsi skip-add-drop-table, skip-add-locks, skip-comments, skip-disable-keys, dan skip-set-charset.

databases

FALSE

TRUE|FALSE

Mengekspor beberapa database. Secara default, mysqldump memperlakukan argumen nama pertama sebagai nama database dan nama-nama berikutnya sebagai nama tabel. Dengan opsi ini, mysqldump memperlakukan semua argumen nama sebagai nama database dan menambahkan pernyataan CREATE DATABASE serta USE sebelum setiap dump database.

disable-keys

TRUE

TRUE|FALSE

Menyisipkan pernyataan INSERT di antara/!40000 ALTER TABLE tab_name DISABLE KEYS / dan/!40000 ALTER TABLE tab_name ENABLE KEYS /. Hal ini dapat mempercepat penyisipan data. Opsi ini hanya efektif untuk indeks non-unik pada tabel MyISAM.

events

FALSE

TRUE|FALSE

Mengekspor event terjadwal dari database yang di-dump.

extended-insert

TRUE

TRUE|FALSE

Menggunakan sintaks INSERT diperluas untuk menulis beberapa baris dalam satu pernyataan.

hex-blob

FALSE

TRUE|FALSE

Mengekspor kolom BINARY, VARBINARY, dan BLOB menggunakan notasi heksadesimal. Kami merekomendasikan penggunaan opsi ini saat melakukan migrasi data antar versi berbeda.

ignore-table=db.tab

NA

NA

Mengecualikan tabel atau view yang ditentukan. Formatnya adalah db_name.table_name. Anda dapat menggunakan opsi ini beberapa kali untuk mengabaikan beberapa tabel.

max-allowed-packet

24 MB

24 MB hingga 1 GB

Mengatur ukuran buffer maksimum untuk komunikasi client-server. Nilai default-nya adalah 24 MB. Nilai maksimumnya adalah 1 GB.

no-create-db

FALSE

TRUE|FALSE

Menekan pernyataan CREATE DATABASE dalam output.

no-create-info

FALSE

TRUE|FALSE

Menekan pernyataan CREATE TABLE dalam output.

no-data

FALSE

TRUE|FALSE

Tidak menulis data baris apa pun.

opt

TRUE

TRUE|FALSE

Mengaktifkan opsi add-drop-table, add-locks, create-options, disable-keys, extended-insert, lock-tables, quick, dan set-charset. Opsi ini diaktifkan secara default. Untuk menonaktifkannya, gunakan skip-opt.

dump-date

TRUE

TRUE|FALSE

Menambahkan stempel waktu dump sebagai komentar di akhir output. Ini memerlukan opsi comments. Kedua opsi ini diaktifkan secara default.

routines

FALSE

TRUE|FALSE

Mengekspor prosedur tersimpan dan fungsi. Opsi ini dinonaktifkan secara default.

result-file

NA

NA

Mengarahkan output ke file yang ditentukan.

set-charset

TRUE

TRUE|FALSE

Menambahkan SET NAMES default_character_set ke output.

triggers

TRUE

TRUE|FALSE

Mengekspor pemicu untuk setiap tabel yang di-dump.

Opsi yang tidak didukung

Parameter

Default

Nilai

Deskripsi

all-databases

FALSE

TRUE|FALSE

Mengekspor semua database, termasuk database mysql.

flush-logs

FALSE

TRUE|FALSE

Menjalankan perintahflush logs; sebelum memulai ekspor.

flush-privileges

FALSE

TRUE|FALSE

Menambahkan perintahflush privileges; ke output setelah database mysql diekspor.

lock-all-tables

FALSE

TRUE|FALSE

Memperoleh global read lock selama proses ekspor, yang membuat semua tabel di semua database menjadi read-only. Opsi ini secara otomatis menonaktifkan opsi lock-tables dan single-transaction.

tab=dir_name

NA

NA

Menghasilkan file tbl_name.sql (berisi pernyataan CREATE TABLE) dan file data tbl_name.txt yang dipisahkan tab di direktori yang ditentukan.

Opsi yang tidak didukung dan alasannya

  • all-databases: Opsi ini tidak didukung. Akun pengguna standar di ApsaraDB RDS for MySQL tidak memiliki izin untuk beberapa tabel di database mysql, sehingga penggunaannya menyebabkan error.

    Pesan error

    
    mysqldump: Couldn’t execute ‘show create table slow_log‘: SHOW command denied to user ‘xxx’@’xx.xx.xx.xx’ for table ‘slow_log’ (1142)
  • flush-logs: Opsi ini tidak didukung. Akun pengguna standar di ApsaraDB RDS for MySQL tidak memiliki hak istimewa RELOAD dan karenanya tidak dapat menjalankan perintah flush logs;.

    Pesan error

    mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
  • flush-privileges: Opsi ini tidak diperlukan karena ApsaraDB RDS for MySQL tidak mendukung ekspor database mysql.

  • lock-all-tables: Opsi ini tidak didukung. Akun pengguna standar di ApsaraDB RDS for MySQL tidak memiliki hak istimewa RELOAD.

    Pesan error

    mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
  • tab=dir_name: Opsi ini tidak didukung karena memerlukan mysqldump dijalankan pada mesin fisik yang sama dengan instans ApsaraDB RDS for MySQL. Namun, Anda dapat menggunakan opsi ini bersama opsi no-data untuk menghasilkan file yang berisi pernyataan CREATE TABLE.

    # Gunakan opsi ini bersama opsi no-data untuk mendapatkan file tab_name.sql, yang berisi pernyataan CREATE TABLE untuk setiap tabel di database test.
    mysqldump  —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp —no-data test
    # Pesan error yang dikembalikan saat Anda mengekspor data tanpa menggunakan opsi --no-data:
    mysqldump  —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp test
    mysqldump: Got error: 1045: Access denied for user ‘xxx’@’%’ (using password: YES) when executing ‘SELECT INTO OUTFILE’