J'utilise Administrateur MySQL pour faire ma sauvegarde de la base de données. Je peux parfaitement sauvegarder toute la base de données avec toutes ses tables. Il y a des tables dont la taille est très grosse alors je me demande si je ne pouvais que sauvegarder la structure des tables (seuls leurs éléments) mais pas leurs données.
Utilisez le --no-data
Basculez avec MySqldump pour le dire de ne pas vider les données, seule la structure de la table.
Cela émettra l'instruction Create Table pour les tables.
Quelque chose comme ça
mysqldump --no-data -h localhost -u root -ppassword mydatabase > mydatabase_backup.sql
Pour cibler des tables spécifiques, entrez-les après le nom de la base de données.
mysqldump --no-data -h localhost -u root -ppassword mydatabase table1 table2 > mydatabase_backup.sql
http://dev.mysql.com/doc/refman/5.1/fr/mysqldump.html#option_mysqldump_no-data
comme Luker l'a dit, l'option --No-Données pour MySqldump fera ce que vous voulez.
pour ajouter à cela, voici un script de sauvegarde que j'ai écrit qui décharge toutes les bases de données MySQL aux fichiers texte simples et crée des fichiers de bulletins séparés pour chaque schéma de table et données de la base de données (il est assez courant de vouloir restaurer ou créer les tables sur un autre serveur MySQL sans les données, et c'est beaucoup plus facile à faire lorsque vous avez déjà un petit fichier avec juste l'index de la table Create/Créer des commandes, etc.)
#! /bin/bash #.]# backup-mysql.sh [.____] # # Craig Sanders <[email protected]> [.____] Le script est dans le domaine public. fais ce que tu veux avec ça. [.____] Myuser = "Nom d'utilisateur" mypwd = "passwd" argense = "- une transaction unique --FLUSH-BOGS --COMPETE-INSERT "[.____] [.____] [ Information_schema '); BackupDir =/var/sauvegarde/mysql [.] Année = $ (Date + "% Y") Mois = $ (date + "% m") Jour = $ (date + "% d") [.____] [.] Date = "$ US - $ mois/$ $ Année - $ mois mois- $ jour "[.____] [.____] [.____] MKDIR -P $ backupDir/$ date CD $ BACKUPDIR/$ DATE [.____] car $ De bases de données; faire echo -n "sauvegarde de $ i: schéma ..." [ ( -P $ mypwd $ i> $ i.data.sql echo -n "compression ..." [.____] gzip -9fq $ i.schema.sql $ i.data .sql echo "fait". [.____] fait [.____] # Supprimer des fichiers de sauvegarde de plus de 30 jours [. D -MTime +30) [.____] Si [-N "$ old"]; alors Echo Supprimer les anciens fichiers de sauvegarde: $ old [.____] echo $ vieux | xargs rm -rfv fi
Vous pouvez également le faire manuellement à travers l'interface de commande mysql
en faisant un DESCRIBE <tablename>
et copier/coller les résultats.