Transfert de la base de données Mysql vers un autre ordinateur [fermé]

j'ai un mysql la base de données est remplie et fonctionne sur un Windows ordinateur, y a-t-il un outil pour transférer la base de données vers un autre ordinateur (exécutant Ubuntu)?

sinon je vais juste écrire un script prendre toutes les données de la base dans le SQL et insert sur l'autre ordinateur. Juste essayer de gagner du temps :)

Merci à tous.

27
demandé sur McCygnus 2008-11-30 17:53:29

9 réponses

il se décharge sur sql, que vous pouvez ensuite copier sur une autre machine et recharger.

par exemple:

source:

mysqldump -u username -p databasename > dumpfile.sql

puis utilisez ftp / rsync / whatever pour déplacer le fichier vers la machine de destination, et là, créez une base de données vide pour importer et exécuter:

mysql -u username -p databasename < dumpfile.sql

vous aurez également besoin de configurer les permissions sur les utilisateurs qui ont pu être transférés aussi bien, car ils ne sont pas organisées au sein de la base de données.

alternativement, vous pouvez copier les fichiers à partir du répertoire de données mysql - mais mysqldump est le moyen le plus simple/le plus fiable.

il est intéressant de noter que les noms de table peuvent devenir sensibles à la casse sur un système quand ils n'étaient pas sur l'original. Cela dépend de la configuration aux deux extrémités - en particulier de la sensibilité du système de fichiers au cas (ou autrement).

31
répondu benlumley 2013-06-03 12:42:48

au lieu d'exporter les bases de données une par une, vous pouvez les exporter toutes avec une seule commande. Puis les importer. par exemple.

mysqldump -u username -p --all-databases > c:\alldbs.sql

PS - Le plus grand avantage est que vous ne perdez pas les privilèges d'utilisateur.

17
répondu Sanjay Zalke 2012-04-04 15:51:37

les fichiers sur disque sont 100% compatibles entre toutes les éditions de MySQL. Vous avez juste à faire attention au cas des noms de fichiers car il importe sur Unix, alors qu'il ne le fait que parfois sur Windows.

et rappelez-vous d'arrêter MySQL avant de prendre une copie. Les fichiers MyISAM sont corrects pour prendre une copie pendant l'exécution, mais les fichiers InnoDB ne sont pas vraiment sûrs pour faire cela et MySQL de Windows par défaut pour les fichiers InnoDB.

2
répondu staticsan 2008-12-02 05:27:34

soyez prudent avec les jeux de caractères lorsque vous utilisez mysqldump, en particulier sur windows. Je préfère définir explicitement le jeu de caractères que ma base de données utilise et utiliser le --result-file=file au lieu d'utiliser l'opérateur > pour éviter que quelque chose ne se casse.

2
répondu Ariel Arjona 2008-12-02 06:21:03

à Partir de la documentation de MySQL: http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html

shell> mysqldump --quick db_name | gzip > db_name.gz

transférez le fichier contenant le contenu de la base de données à la machine cible et exécutez ces commandes là:

shell> mysqladmin create db_name
shell> gunzip < db_name.gz | mysql db_name
1
répondu Petre Lukarov 2013-04-18 00:47:31

vous pouvez faire une sauvegarde en utilisant n'importe quel outil gui, comme administrateur Mysql (http://dev.mysql.com/downloads/gui-tools/ sur Windows, aptitude installe mysql-admin sur Ubuntu) ou phpmyadmin (http://www.phpmyadmin.net/home_page/index.php sur Windows, aptitude installe phpmyadmin sur Ubuntu), puis le récupérer dans l'autre ordinateur.

0
répondu Gonzalo Quero 2008-11-30 14:58:06

mysqldump devrait le vider correctement et préserver le jeu de caractères de n'importe quoi dans la base de données. Il est conseillé de passer à la même version de mysql si vous ne voulez pas de problèmes.

le fichier produit par mysqldump n'est pas un fichier texte, malgré les apparences, ne l'éditez pas avec notepad.exe etc ou vous finirez en difficulté.

les Dumps produits par des outils gui tiers, en particulier phpmyadmin, sont généralement inexacts et ne seront pas nécessairement restaurés correctement.

0
répondu MarkR 2008-12-02 06:30:36

je me retrouve souvent à utiliser une variante de ce one-liner pour copier une base de données sur le réseau.

mysqldump --opt --compress --user=username database | mysql --user=username2 --password=p2 --host=hostB -D database -C database

que j'ai lu pour la première fois ici:

http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/

0
répondu AdamK 2009-03-03 22:40:42

avec New mysql workbench (gui tool), vous pouvez facilement exporter la base de données et l'importer dans la base de données que vous voulez migrer.

0
répondu zhongxiao37 2012-07-05 08:18:30