J'essaie de déplacer une base de données MySQL d'une machine Linux vers une machine exécutant Windows Vista.
En utilisant mysqldump, j'ai obtenu un .sql
fichier, que j'ai déplacé vers la machine Windows. Et après?
Si je passais à une autre machine Linux, on pourrait faire ce genre de chose:
mysql -u username -p databasename < dumpfile.sql
Quelqu'un connaît-il une invocation analogue qui fonctionne à partir de la ligne de commande Windows? Ou existe-t-il des outils pour y parvenir?
Lorsque j'essaie ce type de commande à partir de la ligne de commande Windows, j'obtiens:
'mysql' is not recognized as an internal or external command
J'ai aussi essayé:
mysql> source C:\Stuff\dumpfile.sql
Cela a donné:
Failed to open file 'C:\Stuff\dumpfile.sql', error: 2
Ce même type de commande devrait fonctionner aussi bien sous Windows que sous Linux. Avez-vous essayé d'exécuter cette commande? Quel type de messages d'erreur recevez-vous?.
Je viens de tester sur ma machine locale avec MySQL sur Windows XP. La seule raison pour laquelle j'ai pu voir que cela ne fonctionnait pas, c'est que MySQL n'est pas sur votre chemin. S'il ne se trouve pas dans votre chemin, vous devez spécifier le chemin complet de l'exécutable MYSQL ou l'exécuter à partir du répertoire dans lequel il est stocké. Vous pouvez également ajouter l'exécutable au chemin si vous prévoyez d'utiliser l'exécutable MySQL sur un régulièrement.
Voir ce commentaire de Jeff Zohrab sur la documentation MySQL:
Pour les utilisateurs de Windows, utilisez des barres obliques pour les délimiteurs de chemin. Vous n'avez pas non plus besoin de mettre le chemin d'accès au fichier entre guillemets. Par exemple, les œuvres suivantes:
mysql> source C:/Documents and Settings/My name here/My Documents/script.sql;
Au cas où, pour Linux:
mysql> source /path/to/script.sql;
Si vous obtenez une "erreur 2", c'est parce que la commande a été exécutée, ce n'est donc pas parce que MysQL est introuvable.
L'erreur 2 est due au fait que vous devez utiliser ce chemin: 'C:/Stuff/dumpfile.sql'
au lieu de 'C:\Stuff\dumpfile.sql'
Vous pouvez également essayer 'C:\\Stuff\\dumpfile.sql'
, mais le chemin de type Unix est la voie à suivre.
Mais le moyen le plus simple est le suivant:
Si le fichier .sql se trouve dans c:\temp et que MySQL est installé à l'emplacement par défaut:
C:\temp>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -p -h localhost myDatabase < myDatabaseDump.sql
Cordialement.
Si cela ne vous dérange pas de le faire de manière interactive, vous pouvez utiliser la commande source
dans le shell mysql, suivie du nom du fichier. Sinon, je crois que Kibbee a raison sur les tuyaux qui fonctionnent dans cmd.exe
.
Vous pouvez ajouter une variable d'environnement dans Windows XP, testée et confirmée pour Vista, via setx.exe, dans le dossier contenant mysql.exe, mysqldump.exe etc. (Cet exemple repose sur l'installation de MySQL Workbench et modifie simplement le chemin d'accès à votre choix.
setx path "%PATH%;C:\Program Files\MySQL\MySQL Workbench 5.2 CE"