Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Opciones de mysqldump para ApsaraDB RDS for MySQL

Última actualización: Sep 03, 2026

Función GTID

MySQL 5.6 introdujo la función Global Transaction Identifier (GTID). Por este motivo, la utilidad mysqldump en MySQL 5.6 y versiones posteriores incluye la opción set-gtid-purged.

Parámetro

Valor predeterminado

Valor

Descripción

set-gtid-purged

AUTO

ON\

OFF\

AUTO

Controla si se incluye la instrucción SET @@GLOBAL.GTID_PURGED en la salida.

Nota
  • ON: Incluye la instrucción SET @@GLOBAL.GTID_PURGED en la salida de mysqldump.

  • OFF: No incluye la instrucción SET @@GLOBAL.GTID_PURGED en la salida de mysqldump.

  • AUTO: Valor predeterminado. Incluye la instrucción SET @@GLOBAL.GTID_PURGED si GTID está habilitado en la instancia de origen. De lo contrario, no se incluye información de GTID.

Por lo tanto, al usar mysqldump de MySQL 5.6 o posterior para exportar datos desde una instancia de ApsaraDB RDS for MySQL 5.5, debe establecer set-gtid-purged en OFF. De lo contrario, se produce uno de los siguientes errores:

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

Cómo evitar esperas por bloqueos a nivel de tabla

De forma predeterminada, mysqldump habilita la opción lock-tables. Esta opción aplica un bloqueo a nivel de tabla sobre las tablas exportadas y bloquea las operaciones de lenguaje de manipulación de datos (DML) en ellas.

Los motores de almacenamiento InnoDB y TokuDB, compatibles de forma predeterminada en las instancias de ApsaraDB RDS for MySQL, admiten transacciones. Se recomienda utilizar la opción single-transaction para exportar los datos en lugar de usar las opciones lock-all-tables o lock-tables.

Parámetro

Valor predeterminado

Valor

Descripción

lock-all-tables

FALSE

TRUE\

FALSE

Adquiere un bloqueo de lectura global durante toda la exportación. Esto convierte todas las tablas de todas las bases de datos en solo lectura. Esta opción deshabilita automáticamente las opciones lock-tables y single-transaction. ApsaraDB RDS for MySQL no es compatible con esta opción.

lock-tables

TRUE

TRUE\

FALSE

Bloquea las tablas exportadas durante la exportación. Esta opción está habilitada de forma predeterminada. Para deshabilitarla, utilice la opción skip-lock-tables.

single-transaction

FALSE

TRUE\

FALSE

Realiza la exportación dentro de una sola transacción. Esta opción deshabilita automáticamente la opción lock-tables.

Configuración del conjunto de caracteres de exportación

Si no especifica un conjunto de caracteres, mysqldump utiliza UTF8 de forma predeterminada.

Parámetro

Valor predeterminado

Valor

Descripción

default-character-set

UTF8

Conjuntos de caracteres compatibles con la instancia

Establece el conjunto de caracteres para la exportación.

Otras opciones de exportación

Parámetro

Valor predeterminado

Valor

Descripción

no-defaults

NA

NA

No lee ningún archivo de opciones, excepto .mylogin.cnf.

defaults-file=file_name

NA

NA

Lee únicamente el archivo de opciones especificado.

add-drop-database

FALSE

TRUE\

FALSE

Agrega una instrucción DROP DATABASE antes de cada instrucción CREATE DATABASE.

add-drop-table

TRUE

TRUE\

FALSE

Agrega una instrucción DROP TABLE antes de cada instrucción CREATE TABLE. Esta opción está habilitada de forma predeterminada. Para deshabilitarla, utilice la opción skip-add-drop-table.

add-locks

TRUE

TRUE\

FALSE

Rodea cada volcado de tabla con instrucciones LOCK TABLES y UNLOCK TABLES. Esto puede acelerar la importación de datos al recargar el archivo de volcado.

compatible=name

NA

ansi\

postgresql\

oracle\

mssql

Genera una salida más compatible con el tipo de base de datos especificado.

compact

FALSE

TRUE\

FALSE

Habilita las opciones skip-add-drop-table, skip-add-locks, skip-comments, skip-disable-keys y skip-set-charset.

databases

FALSE

TRUE\

FALSE

Exporta varias bases de datos. De forma predeterminada, mysqldump trata el primer argumento de nombre como un nombre de base de datos y los nombres subsiguientes como nombres de tablas. Con esta opción, mysqldump trata todos los argumentos de nombre como nombres de bases de datos y agrega instrucciones CREATE DATABASE y USE antes de cada volcado de base de datos.

disable-keys

TRUE

TRUE\

FALSE

Rodea las instrucciones INSERT con instrucciones /!40000 ALTER TABLE tab_name DISABLE KEYS / y /!40000 ALTER TABLE tab_name ENABLE KEYS /. Esto puede acelerar la inserción de datos. Esta opción solo es efectiva para índices no únicos de tablas MyISAM.

events

FALSE

TRUE\

FALSE

Exporta eventos programados de las bases de datos volcadas.

extended-insert

TRUE

TRUE\

FALSE

Utiliza sintaxis extendida de INSERT para escribir varias filas en una sola instrucción.

hex-blob

FALSE

TRUE\

FALSE

Exporta columnas BINARY, VARBINARY y BLOB mediante notación hexadecimal. Se recomienda utilizar esta opción al migrar datos entre diferentes versiones.

ignore-table=db.tab

NA

NA

Excluye la tabla o vista especificada. El formato es db_name.table_name. Puede utilizar esta opción varias veces para ignorar múltiples tablas.

max-allowed-packet

24 MB

24 MB a 1 GB

Establece el tamaño máximo del búfer para la comunicación cliente-servidor. El valor predeterminado es 24 MB. El valor máximo es 1 GB.

no-create-db

FALSE

TRUE\

FALSE

Suprime las instrucciones CREATE DATABASE en la salida.

no-create-info

FALSE

TRUE\

FALSE

Suprime las instrucciones CREATE TABLE en la salida.

no-data

FALSE

TRUE\

FALSE

No escribe ningún dato de fila.

opt

TRUE

TRUE\

FALSE

Habilita las opciones add-drop-table, add-locks, create-options, disable-keys, extended-insert, lock-tables, quick y set-charset. Esta opción está habilitada de forma predeterminada. Para deshabilitarla, utilice skip-opt.

dump-date

TRUE

TRUE\

FALSE

Agrega una marca de tiempo del volcado como comentario al final de la salida. Esto requiere la opción comments. Tanto esta opción como comments están habilitadas de forma predeterminada.

routines

FALSE

TRUE\

FALSE

Exporta procedimientos almacenados y funciones. Esta opción está deshabilitada de forma predeterminada.

result-file

NA

NA

Redirige la salida a un archivo especificado.

set-charset

TRUE

TRUE\

FALSE

Agrega SET NAMES default_character_set a la salida.

triggers

TRUE

TRUE\

FALSE

Exporta los desencadenadores de cada tabla volcada.

Opciones no compatibles

Parámetro

Valor predeterminado

Valor

Descripción

all-databases

FALSE

TRUE\

FALSE

Exporta todas las bases de datos, incluida la base de datos mysql.

flush-logs

FALSE

TRUE\

FALSE

Ejecuta un comando flush logs; antes de iniciar la exportación.

flush-privileges

FALSE

TRUE\

FALSE

Agrega un comando flush privileges; a la salida después de exportar la base de datos mysql.

lock-all-tables

FALSE

TRUE\

FALSE

Adquiere un bloqueo de lectura global durante la duración de la exportación, lo que convierte todas las tablas de todas las bases de datos en solo lectura. Esta opción deshabilita automáticamente las opciones lock-tables y single-transaction.

tab=dir_name

NA

NA

Genera un archivo tbl_name.sql (que contiene la instrucción CREATE TABLE) y un archivo de datos tbl_name.txt separado por tabulaciones en el directorio especificado.

Opciones no compatibles y motivos

  • all-databases: Esta opción no es compatible. Las cuentas de usuario estándar en ApsaraDB RDS for MySQL no tienen permisos para algunas tablas en la base de datos mysql. El uso de esta opción provoca un error.

    Mensaje de 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: Esta opción no es compatible. Las cuentas de usuario estándar en ApsaraDB RDS for MySQL no tienen el privilegio RELOAD y, por lo tanto, no pueden ejecutar el comando flush logs;.

    Mensaje de 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: Esta opción es innecesaria porque ApsaraDB RDS for MySQL no admite la exportación de la base de datos mysql.

  • lock-all-tables: Esta opción no es compatible. Las cuentas de usuario estándar en ApsaraDB RDS for MySQL no tienen el privilegio RELOAD.

    Mensaje de 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: Esta opción no es compatible porque requiere que mysqldump se ejecute en la misma máquina física que aloja la instancia de ApsaraDB RDS for MySQL. Sin embargo, puede utilizar esta opción junto con la opción no-data para generar archivos que contengan instrucciones CREATE TABLE.

    # Use this option with the no-data option to obtain the tab_name.sql file, which contains the CREATE TABLE statement for each table in the test database.
    mysqldump  —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp —no-data test
    # Error message returned when you export data without using the --no-data option:
    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’