Réponses:
mysqldump --no-create-info ...
Vous pouvez également utiliser:
--skip-triggers
: si vous utilisez des déclencheurs--no-create-db
: si vous utilisez l' --databases ...
option--compact
: si vous voulez vous débarrasser des commentaires supplémentairesmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
, utilisez--single-transaction
--where
. Par exemple,--where="id=2"
Cela devrait fonctionner:
# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql
# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql
# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql
REMARQUE: il n'y a pas d'espace entre -p
&[pass]
--no-create-db
est redondant lors de l'utilisation--no-create-info
-p
va bien
ps -ef
)
-p
option mysqldump
demande le mot de passe.
>> man -k mysqldump [enter in the terminal]
vous trouverez l'explication ci-dessous
--no-create-info, -t
N'écrivez pas d'instructions CREATE TABLE qui recréent chaque table sauvegardée. Remarque Cette option n'exclut pas les instructions créant des groupes de fichiers journaux ou des espaces disque logiques de la sortie mysqldump; cependant, vous pouvez utiliser l'option --no-tablespaces à cet effet.
--no-data, -d
N'écrivez aucune information de ligne de table (c'est-à-dire, ne videz pas le contenu de la table). Cela est utile si vous souhaitez vider uniquement l'instruction CREATE TABLE pour la table (par exemple, pour créer une copie vide de la table en chargeant le fichier de vidage).
# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql
# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql
Suggère d'utiliser l'extrait de code suivant. Fonctionne bien même avec des tables énormes (sinon vous ouvririez le vidage dans l'éditeur et supprimeriez les choses inutiles, non?;)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
Au moins mysql 5.x requis, mais qui gère de vieux trucs de nos jours .. :)
Il suffit de vider les données au format texte délimité .
Lorsque j'ai tenté d'exporter des données à l'aide de la réponse acceptée, j'ai reçu une erreur:
ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Comme mentionné ci-dessus:
mysqldump --no-create-info
Exportera les données mais exportera également les instructions de déclenchement de création. Si comme moi, votre structure de base de données de sortie (qui comprend également des déclencheurs) avec une seule commande, puis en utilisant la commande ci-dessus pour obtenir les données, vous devez également utiliser '--skip-triggers'.
Donc, si vous voulez juste les données:
mysqldump --no-create-info --skip-triggers