Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Options mysqldump pour ApsaraDB RDS for MySQL

Dernière mise à jour :Sep 02, 2026

Fonctionnalité GTID

MySQL 5.6 a introduit la fonctionnalité d'identifiant global de transaction (GTID). Par conséquent, l'utilitaire mysqldump inclus dans MySQL 5.6 et les versions ultérieures prend en charge l'option set-gtid-purged.

Paramètre

Valeur par défaut

Valeur

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.

Par conséquent, lorsque vous utilisez mysqldump à partir de MySQL 5.6 ou 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 de la table

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.

Paramètre

Valeur par défaut

Valeur

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.

Paramètre

Valeur par défaut

Valeur

Description

default-character-set

UTF8

Jeux de caractères pris en charge par l'instance

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

Autres options d'exportation

Paramètre

Valeur par défaut

Valeur

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 les 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 table. Avec cette option, mysqldump traite tous les arguments de nom comme des noms de base de données et ajoute les 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 Mo

24 Mo à 1 Go

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

Paramètre

Valeur par défaut

Valeur

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 la commande flush logs; avant de démarrer l'exportation.

flush-privileges

FALSE

TRUE\

FALSE

Ajoute la 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 d'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 d'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 d'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’