La réponse acceptée par RandomSeed pourrait prendre beaucoup de temps ! L'importation de la table (juste pour la supprimer plus tard) peut être très coûteuse en fonction de sa taille.
Pour un fichier créé à l'aide de
mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql
Je reçois actuellement un fichier d'environ 7 Go, dont 6 Go sont des données pour une table de journal dont je n'ai pas « besoin » d'être là ; le rechargement de ce fichier prend quelques heures. Si j'ai besoin de recharger (à des fins de développement, ou si nécessaire pour une récupération en direct), je parcoure le fichier ainsi :
sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql
Et rechargez avec :
mysql -u user -ppasswd DBname < reduced.sql
Cela me donne une base de données complète, avec la table "indésirable" créée mais vide. Si vous ne voulez vraiment pas du tout les tables, supprimez simplement les tables vides une fois le chargement terminé.
Pour plusieurs tables, vous pouvez faire quelque chose comme ceci :
sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql
Il y a un 'gotcha' - faites attention aux procédures dans votre dump qui pourraient contenir "INSERT INTO TABLE_TO_SKIP".