web-dev-qa-db-fra.com

Exportation de données d'un schéma à un autre dans MySQL Workbench

Existe-t-il un moyen d’exporter les tables et les données d’un schéma à un autre? L'option gérer l'importation/exportation me demande de sélectionner un serveur auquel se connecter, ce qui est vide. Je suis actuellement connecté à un serveur loué par mon école, spécialement pour cette classe. Je n'ai donc aucun droit d'administrateur. 

9
Hokerie

Vous pouvez créer une sauvegarde via l'exportation de données dans MySQL Workbench et l'importer juste après l'exportation dans un nouveau schéma. MySQL Workbench permet de remplacer le schéma cible dans un vidage.

7
Mike Lischke

Si vous rencontrez des problèmes lors de l'importation de vos données dans le nouveau schéma, par exemple si vous ne recevez aucune donnée, une solution de contournement peut être nécessaire. J'ai exécuté une exportation d'un schéma de MySQL Workbench vers un fichier .sql pour l'importer ultérieurement dans un autre schéma. Le problème était que le fichier .sql exporté conservait le schéma précédent. 

Donc, si vous trouvez cela au début du fichier exporté .sql:

CREATE DATABASE  IF NOT EXISTS `old_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `old_schema`;

Remplacez-le par ceci:

CREATE DATABASE  IF NOT EXISTS `new_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `new_schema`;

Cela fera l'affaire. Dans certaines situations, votre fichier .sql peut représenter quelques centaines de Mo. Vous devrez donc attendre un peu avant de l’ouvrir dans votre éditeur. Ce code devrait être au début du fichier, donc il est facile à trouver.

J'espère que ça aide!

3
evaldeslacasa

dans les versions 6.0 et supérieures, il semble que le vidage écrit des tables individuelles dans un répertoire que vous nommez le vidage. Tous les noms de schéma et de table sont définis par défaut sur votre schéma à partir duquel vous avez exporté (comme vous l'avez indiqué). Pour faciliter une importation dans un nouveau schéma, exécutez simplement les opérations suivantes dans votre répertoire de vidage:

find . -type f -exec sed -i 's/your_export_schema/your_different_schema_name/g' {} \;

Attention, vous allez vous perdre dans la peau si vous avez dans votre exportation des données contenant votre ancien nom de schéma. 

1
eggmatters

J'ai remarqué que la question concernait le Workbanch, mais sachez que les phpMyAdmin ont cette capacité directement dans les opérations de base de données.

0
amichai