Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Options mysqldump pour ApsaraDB RDS for MySQL

Dernière mise à jour :Aug 19, 2026

Fonctionnalité GTID

MySQL 5.6 a introduit la fonctionnalité Global Transaction Identifier (GTID). L'utilitaire mysqldump de MySQL 5.6 et des versions ultérieures inclut donc l'option set-gtid-purged.

Parameter

Default

Value

Description

set-gtid-purged

AUTO

ON

OFF

AUTO

Contrôle l'inclusion de l'instruction SET @@GLOBAL.GTID_PURGED dans la sortie.

Remarque
  • ON : inclut l'instruction SET @@GLOBAL.GTID_PURGED dans la sortie de mysqldump.

  • OFF : n'inclut pas l'instruction SET @@GLOBAL.GTID_PURGED dans la sortie de mysqldump.

  • AUTO : valeur par défaut. Inclut l'instruction SET @@GLOBAL.GTID_PURGED si GTID est activé sur l'instance source. Sinon, aucune information GTID n'est incluse.

Lorsque vous utilisez mysqldump à partir de MySQL 5.6 ou d'une version ultérieure pour exporter des données depuis une instance ApsaraDB RDS for MySQL 5.5, définissez set-gtid-purged sur OFF. Dans le cas contraire, l'une des erreurs suivantes se produit :

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

Éviter les attentes de verrouillage au niveau des tables

Par défaut, mysqldump active l'option lock-tables. Cette option applique un verrou au niveau de la table aux tables exportées et bloque les opérations DML (Data Manipulation Language) sur celles-ci.

Les moteurs de stockage InnoDB et TokuDB, pris en charge par défaut sur les instances ApsaraDB RDS for MySQL, prennent tous deux en charge les transactions. Nous vous recommandons d'utiliser l'option single-transaction pour exporter les données plutôt que les options lock-all-tables ou lock-tables.

Parameter

Default

Value

Description

lock-all-tables

FALSE

TRUE

FALSE

Acquiert un verrou de lecture global pendant toute la durée de l'exportation. Cela rend toutes les tables de toutes les bases de données accessibles en lecture seule. Cette option désactive automatiquement les options lock-tables et single-transaction. Elle n'est pas prise en charge par ApsaraDB RDS for MySQL.

lock-tables

TRUE

TRUE

FALSE

Verrouille les tables exportées pendant l'exportation. Cette option est activée par défaut. Pour la désactiver, utilisez l'option skip-lock-tables.

single-transaction

FALSE

TRUE

FALSE

Effectue l'exportation dans une seule transaction. Cette option désactive automatiquement l'option lock-tables.

Définition du jeu de caractères d'exportation

Si vous ne spécifiez pas de jeu de caractères, mysqldump utilise UTF8 par défaut.

Parameter

Default

Value

Description

default-character-set

UTF8

Character sets supported by the instance

Définit le jeu de caractères pour l'exportation.

Autres options d'exportation

Parameter

Default

Value

Description

no-defaults

NA

NA

Ne lit aucun fichier d'options, à l'exception de .mylogin.cnf.

defaults-file=file_name

NA

NA

Lit uniquement le fichier d'options spécifié.

add-drop-database

FALSE

TRUE

FALSE

Ajoute une instruction DROP DATABASE avant chaque instruction CREATE DATABASE.

add-drop-table

TRUE

TRUE

FALSE

Ajoute une instruction DROP TABLE avant chaque instruction CREATE TABLE. Cette option est activée par défaut. Pour la désactiver, utilisez l'option skip-add-drop-table.

add-locks

TRUE

TRUE

FALSE

Entoure chaque vidage de table avec des instructions LOCK TABLES et UNLOCK TABLES. Cela peut accélérer l'importation des données lors du rechargement du fichier de vidage.

compatible=name

NA

ansi

postgresql

oracle

mssql

Génère une sortie plus compatible avec le type de base de données spécifié.

compact

FALSE

TRUE

FALSE

Active les options skip-add-drop-table, skip-add-locks, skip-comments, skip-disable-keys et skip-set-charset.

databases

FALSE

TRUE

FALSE

Exporte plusieurs bases de données. Par défaut, mysqldump traite le premier argument de nom comme un nom de base de données et les noms suivants comme des noms de tables. Avec cette option, mysqldump traite tous les arguments de nom comme des noms de bases de données et ajoute des instructions CREATE DATABASE et USE avant chaque vidage de base de données.

disable-keys

TRUE

TRUE

FALSE

Entoure les instructions INSERT avec les instructions /!40000 ALTER TABLE tab_name DISABLE KEYS / et /!40000 ALTER TABLE tab_name ENABLE KEYS /. Cela peut accélérer l'insertion des données. Cette option n'est efficace que pour les index non uniques des tables MyISAM.

events

FALSE

TRUE

FALSE

Exporte les événements planifiés depuis les bases de données vidées.

extended-insert

TRUE

TRUE

FALSE

Utilise la syntaxe INSERT étendue pour écrire plusieurs lignes dans une seule instruction.

hex-blob

FALSE

TRUE

FALSE

Exporte les colonnes BINARY, VARBINARY et BLOB en utilisant la notation hexadécimale. Nous vous recommandons d'utiliser cette option lors de la migration de données entre différentes versions.

ignore-table=db.tab

NA

NA

Exclut la table ou la vue spécifiée. Le format est db_name.table_name. Vous pouvez utiliser cette option plusieurs fois pour ignorer plusieurs tables.

max-allowed-packet

24 MB

24 MB to 1 GB

Définit la taille maximale du tampon pour la communication client-serveur. La valeur par défaut est de 24 Mo. La valeur maximale est de 1 Go.

no-create-db

FALSE

TRUE

FALSE

Supprime les instructions CREATE DATABASE de la sortie.

no-create-info

FALSE

TRUE

FALSE

Supprime les instructions CREATE TABLE de la sortie.

no-data

FALSE

TRUE

FALSE

N'écrit aucune donnée de ligne.

opt

TRUE

TRUE

FALSE

Active les options add-drop-table, add-locks, create-options, disable-keys, extended-insert, lock-tables, quick et set-charset. Cette option est activée par défaut. Pour la désactiver, utilisez skip-opt.

dump-date

TRUE

TRUE

FALSE

Ajoute un horodatage de vidage sous forme de commentaire à la fin de la sortie. Cela nécessite l'option comments. Cette option et comments sont activées par défaut.

routines

FALSE

TRUE

FALSE

Exporte les procédures stockées et les fonctions. Cette option est désactivée par défaut.

result-file

NA

NA

Redirige la sortie vers un fichier spécifié.

set-charset

TRUE

TRUE

FALSE

Ajoute SET NAMES default_character_set à la sortie.

triggers

TRUE

TRUE

FALSE

Exporte les déclencheurs pour chaque table vidée.

Options non prises en charge

Parameter

Default

Value

Description

all-databases

FALSE

TRUE

FALSE

Exporte toutes les bases de données, y compris la base de données mysql.

flush-logs

FALSE

TRUE

FALSE

Exécute une commande flush logs; avant de démarrer l'exportation.

flush-privileges

FALSE

TRUE

FALSE

Ajoute une commande flush privileges; à la sortie après l'exportation de la base de données mysql.

lock-all-tables

FALSE

TRUE

FALSE

Acquiert un verrou de lecture global pendant toute la durée de l'exportation, ce qui rend toutes les tables de toutes les bases de données accessibles en lecture seule. Cette option désactive automatiquement les options lock-tables et single-transaction.

tab=dir_name

NA

NA

Génère un fichier tbl_name.sql (contenant l'instruction CREATE TABLE) et un fichier de données tbl_name.txt séparé par des tabulations dans le répertoire spécifié.

Options non prises en charge et raisons

  • all-databases : cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas des autorisations pour certaines tables de la base de données mysql. L'utilisation de cette option provoque une erreur.

    Message d'erreur

    
    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 : cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas du privilège RELOAD et ne peuvent donc pas exécuter la commande flush logs;.

    Message d'erreur

    mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
  • flush-privileges : cette option est inutile car ApsaraDB RDS for MySQL ne prend pas en charge l'exportation de la base de données mysql.

  • lock-all-tables : cette option n'est pas prise en charge. Les comptes utilisateur standard dans ApsaraDB RDS for MySQL ne disposent pas du privilège RELOAD.

    Message d'erreur

    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 : cette option n'est pas prise en charge car elle nécessite que mysqldump s'exécute sur la même machine physique que celle qui héberge l'instance ApsaraDB RDS for MySQL. Toutefois, vous pouvez utiliser cette option avec l'option no-data pour générer des fichiers contenant des instructions 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’