Je travaille actuellement sur une application Windows avec un backend MySQL. Maintenant, je veux copier l'ancienne structure et les données de la base de données sur un nouveau serveur de base de données.
Comment puis-je résoudre ce problème en utilisant MySQL Workbench?
Je vous remercie!
C'est le cas avec uniquement MySQL Workbech, parfois vous ne l'avez pas installé sur un nouveau serveur, comme dans le scénario de développement à la production, de cette façon, vous devez exécuter l'utilitaire mysqlimport.
Pour copier une base de données directement, sans faire d'abord une exportation et une importation, vous pouvez utiliser la commande MySQL Utilities mysqdbcopy
:
mysqldbcopy --source=root:root@localhost --destination=root:root@localhost world:world_clone
Vous pouvez exécuter la commande dans une console Windows cmd
ou MySQL Utilities Console .
Si vous avez installé phpmyadmin, vous pouvez utiliser les étapes suivantes:
a) Dans la méthode d'exportation, choisissez "Personnalisé - afficher toutes les options possibles"
b) Dans les "Options spécifiques au format", assurez-vous que "structure et données" sont sélectionnées.
c) Dans le "Options de création d'objet", assurez-vous que "instruction ADD CREATE DATABASE/USE" est également marqué.
Exportez le fichier SQL.
scp le fichier exporté du serveur source vers le serveur cible
Dans le phpmyadmin du serveur cible, à l'aide de la fonction "Import", importez le fichier SQL dans la base de données. Il n'y avait aucune option personnalisée à sélectionner pendant le processus d'importation.
Pour copier directement une base de données d'un serveur à un autre (même local) sans créer de fichiers d'exportation/de vidage intermédiaires, vous pouvez le faire dans MySQL Workbench à l'aide d'un assistant. Accédez à Database
-> Migration Wizard
. (modifier: documents )
De là, vous pouvez sélectionner les connexions source et de destination si vous les avez déjà enregistrées dans votre liste de connexions, ou vous pouvez créer une nouvelle connexion à la volée (assurez-vous de cocher la case pour l'ajouter à votre liste de connexions).
. En général, vous pouvez sélectionner MySQL pour les bases de données MySQL ou MariaDB, car MariaDB est généralement conçu pour être un "remplacement binaire" de MySQL.
Lorsqu'il vous demande de sélectionner les bases de données, je crois comprendre que INFORMATION_SCHEMA
est en lecture seule et ne doit pas être sélectionné. Sinon, sauf si vous avez des besoins spécifiques, sélectionnez probablement toutes les autres tables, si vous par exemple clonez le serveur (et peut-être son site Web associé).
De là, vous laisserez MySQL Workbench faire son travail. Continuez à cliquer sur suivant pendant qu'il passe par le processus de rétro-ingénierie de votre schéma des anciens aux nouveaux serveurs, jusqu'à ce qu'il copie enfin les données.
Il existe de nombreux points où vous pouvez apporter des modifications avant de continuer. Vous avez également la possibilité d'afficher les problèmes potentiels et les avertissements qu'il note pendant le processus.
Une fois terminé, vous devrez toujours ajouter des utilisateurs (manuellement?) Pour la base de données clonée. Il existe probablement également un moyen automatisé de cloner la table des utilisateurs, mais je n'en sais rien. Vous pouvez le faire à partir de la ligne de commande si rien d'autre. Puisque j'utilise ceci pour mon développeur local, je n'ai que moi-même à ajouter de toute façon.
Je ne suis pas sûr qu'il soit plus rapide d'utiliser cet outil que d'exporter et d'importer les bases de données de la manière habituelle. Mais c'est certainement plus facile.
Cet outil est en fait conçu pour des migrations plus complexes entre différents types de bases de données (par exemple PostgressSQL et MySQL) plutôt que comme un outil général pour, par exemple, récupérer une copie de votre base de données en direct vers votre serveur de développement local ou vice-versa inversement.
Sous le même menu, il y a Database
-> Schema Transfer Wizard
, que j'ai cru comprendre lorsque vous devez effectuer une mise à jour vers une nouvelle version de serveur. Je ne sais pas précisément les différences entre les deux outils, ou leurs cas d'utilisation réels.
Les instructions sur la façon d'effectuer des opérations d'importation/exportation standard, dans le plan de travail MySQL, les documents sont Assistant d'exportation et d'importation de données SQL , et Assistant d'exportation et d'importation de données de table .
Ce serait bien s'il était possible d'importer/exporter directement entre les serveurs de développement et les serveurs en direct, simplement en choisissant Connexions, plutôt qu'en enregistrant puis en lisant les fichiers de vidage.
Je pense que cela peut être fait via la ligne de commande.