27 votes

Transférer la base de données Mysql vers un autre ordinateur

J'ai une base de données mysql remplie et exécutée sur un ordinateur Windows, existe-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 pour prendre toutes les bases de données dans SQL et les insérer sur l'autre ordinateur. J'essaye juste de gagner du temps :)

Merci à tous.

31voto

benlumley Points 8114

L'outil dont vous parlez existe déjà: mysqldump

Elle se déverse à sql, que vous pouvez ensuite copier sur une autre machine et re-load.

par exemple:

sur la source:

mysqldump -u username -p databasename > dumpfile.sql

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

mysql -u username -p databasename < dumpfile.sql

Vous aurez également besoin de définir des autorisations sur tous les utilisateurs, qui peuvent avoir été transférés en tant que bien, comme ils ne sont pas tenus au sein de la base de données.

Alternativement, vous pouvez copier les fichiers à partir de la base de données dir - mais mysqldump est la plus facile et la plus fiable.

Intéressant de noter que les noms de table peut devenir sensible à la casse sur un système, quand ils n'étaient pas sur l'original. Cela dépend de la config sur les deux extrémités - en particulier le cas de la sensibilité (ou autre) du système de fichiers.

17voto

Sanjay Zalke Points 546

Plutôt que d'exporter les bases de données une par une, vous pouvez toutes les exporter avec une seule commande. Importez-les ensuite. 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 utilisateur.

2voto

staticsan Points 14435

Les fichiers sur disque sont 100% compatibles entre toutes les éditions de MySQL. Il suffit de faire attention au cas des noms de fichiers car il est important sur Unix, alors que ce n'est parfois le cas que sur Windows.

Et n'oubliez pas d'arrêter MySQL avant d'en prendre une copie. Les fichiers MyISAM sont corrects pour prendre une copie lors de l'exécution, mais les fichiers InnoDB ne sont pas vraiment sûrs de le faire et MySQL par défaut de Windows pour les fichiers InnoDB.

2voto

Ariel Arjona Points 125

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 utilisé par ma base de données et utiliser le fichier --result-file = au lieu d'utiliser l'opérateur> de peur que quelque chose ne soit mutilé.

1voto

Peter Lukaroff Points 116

Dans la documentation 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 sur la machine cible et exécutez-y ces commandes:

 shell> mysqladmin create db_name
shell> gunzip < db_name.gz | mysql db_name
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X