Comment puis-je transférer des données entre 2 bases de données MySQL?
Je veux le faire à l'aide d'un code et ne pas utiliser un outil comme "MySQL Migration Toolkit". Le moyen le plus facile je sais, c'est pour ouvrir une connexion à l'aide de connecteurs MySQL) pour DB1 et de lire ses données. Ouvrir la connexion à DB2 et écrire les données. Est-il mieux/plus simple ?
- deux bases de données sur le même serveur ou deux bases de données sur des serveurs différents?
- Je ne suis pas encore sûr de la météo, ils sont sur le même serveur ou pas ? Je sais que cela fait une différence, mais n'est pas venu à l'esprit, pour leur demander. Je vais le faire demain.
Vous devez vous connecter pour publier un commentaire.
D'abord, je vais supposer que vous n'êtes pas en mesure de simplement copier les données/répertoire, parce que si vous êtes alors à l'aide de votre instantané existant/sauvegarde/restauration sera probablement suffisant (et de tester votre sauvegarde/restauration des procédures dans le cadre de la négociation).
Dans ce cas, si les deux tables ont la même structure généralement le plus rapide, et ironiquement, l'approche la plus simple sera d'utiliser SELECT...INTO OUTFILE... sur une extrémité, et de LOAD DATA INFILE... sur les autres.
Voir http://dev.mysql.com/doc/refman/5.1/en/load-data.html et .../select.html pour définitif de détails.
Trivial tableaux ci fonctionne:
Nous avons également utilisé FIFO est d'un grand effet d'éviter la surcharge de l'écrire sur le disque, ou si nous avons besoin d'écrire sur le disque pour une raison quelconque, à pipe, à travers gzip.
ie.
Fondamentalement, on vous direct la table de données à une FIFO vous pouvez compresser, munge, ou tunnel à travers un réseau à votre contenu de coeurs.
Les FÉDÉRÉS moteur de stockage? Pas le plus rapide dans le tas, mais pour un temps, les accessoires, ou de petites quantités de données qu'il va faire. C'est en supposant que vous parliez de 2 SERVEURS. Avec 2 bases de données sur un seul et même serveur, il va tout simplement être:
FEDERATED
est en effet valable uniquement si elles sont totalement différents serveurs. Cependant, je ne peux pas voir ton edit, donc je pense qu'il a été voté. Pourriez-vous partager dans un commentaire afin que je puisse l'intégrer dans la réponse si c'est le partage de la valeur?Vous pouvez utiliser
mysqldump
etmysql
(le client en ligne de commande). Ce sont des outils de ligne de commande et dans la question que vous écrivez, vous ne voulez pas les utiliser, mais encore de les utiliser (même en cours d'exécution de votre code) est le moyen le plus facile;mysqldump
résout beaucoup de problèmes.Vous pouvez faire
select
s à partir d'une base de données etinsert
à l'autre, ce qui est assez facile. Mais si vous avez besoin de transférer le schéma de base de données (create table
s etc.), il devient un peu plus compliqué, c'est la raison pour laquelle je recommandemysqldump
. Mais beaucoup de PHP-MySQL-outils d'administration le fait aussi, de sorte que vous pouvez les utiliser ou de regarder leur code.Ou peut-être vous pouvez utiliser la réplication MySQL.
de http://dev.mysql.com/doc/refman/5.0/en/rename-table.html:
Tant que les deux bases de données sont sur le même système de fichiers, vous pouvez utiliser RENAME TABLE une table d'une base de données à l'autre:
Si vous avez activé la journalisation binaire sur votre serveur actuel (et de tous les bin journaux), vous pouvez configurer la réplication pour la deuxième serveur