630 votes

Ignorer certaines tables avec mysqldump

Y at-il un moyen de restreindre certaines tables de la commande mysqldump?

Par exemple, j'utiliserais la syntaxe suivante pour vider uniquement table1 et table2:

 mysqldump -u username -p database table1 table2 > database.sql
 

Mais existe-t-il une manière similaire de vider toutes les tables sauf table1 et table2? Je n'ai rien trouvé dans la documentation de mysqldump, donc est-ce que la force brute (en spécifiant tous les noms de tables) est la seule façon d'y aller?

1050voto

Brian Fisher Points 10755

Vous pouvez utiliser l'option --ignore-table . Donc tu pourrais faire

 mysqldump -u username -p database --ignore-table=database.table1 --ignore-table=database.table2 > database.sql
 

138voto

DuffJ Points 403

Bâtiment sur la réponse de @Brian Fisher et de répondre aux commentaires de certaines personnes sur ce post, j'ai un tas de énorme (et inutile) tables dans ma base de données j'ai donc voulu sauter leur contenu lors de la copie, mais de garder la structure:

mysqldump -h <host> -u <username> -p <schema> --no-data > db-structure.sql
mysqldump -h <host> -u <username> -p <schema> --ignore-table=schema.table1 --ignore-table=schema.table2 > db-data.sql

La résultante de deux fichiers sont structurellement solides, mais le sous-évaluées de données est maintenant ~500 MO plutôt que de 9GO, beaucoup mieux pour moi. Je peux maintenant importer ces deux fichiers dans une autre base de données à des fins de test sans avoir à vous soucier de la manipulation de 9 GO de données ou de l'espace disque disponible. Espérons que cela aide quelqu'un!

67voto

user1219736 Points 31

pour plusieurs bases de données :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X