12
votes

Importation de la base de données MySQL d'un serveur à un autre

J'ai deux serveurs dédiés avec accès root. Les deux fonctionnent Linux. Je souhaite importer une base de données de Server1 sur Server2. J'ai déjà créé une base de données vide sur Server2. Je veux connaître la commande Linux à travers laquelle je peux importer directement une base de données? Y a-t-il une telle caractéristique? Puis-je utiliser mysqldump? Je veux éviter d'abord prendre la sauvegarde de la base de données sur Server1, puis déplacer ce fichier sur serveur2, puis importer ce fichier. Peut importer être effectué directement en utilisant une commande?

merci


0 commentaires

3 Réponses :


13
votes

Si vous souhaitez éviter de créer un fichier, de le transférer et de le charger, vous pouvez simplement pipeler MySQLDUMP dans l'un ou l'autre MySQL exécuté sur l'autre serveur, ou un SSH MySQL sur l'autre serveur.

Utilisation de MySQL pour vous connecter à la boîte à distance: xxx

Utilisation de SSH pour se connecter à l'autre serveur xxx

Utilisez le mysqldump --All- bases de données pour les transférer tous, ou spécifier simplement les noms de base de données. Reportez-vous au documentation MySqldump pour plus d'options.

Vous pouvez Utilisez également la fonction MySQL "Replication", bien que cela prendra un peu plus de temps pour la configuration et est plutôt difficile. Probablement ne vaut probablement pas tout le temps et le problème juste pour une seule migration.


2 commentaires

Merci pour la réponse mais je suis un peu confus quant à quoi faire. Pouvez-vous s'il vous plaît élaborer? Je veux dire, dois-je exécuter la première commande sur Server1 et deuxième commande sur Server2 après la connexion via SSH?


Ali: Vous pouvez exécuter les deux commandes sur Server1. La première commande ouvrira une mysqlconnection à Server2 (mettre son nom après le -h ). La deuxième commande ouvrira une connexion SSH à Server2 elle-même et exécutera l'application client mysql à l'aide de la sortie à partir de mysqldump sur serveur1 comme entrée pour MySQL sur serveur2. Par conséquent, transférer la base de données.



1
votes
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”
Dumps a MySQL database over a compressed SSH tunnel and uses it as input to mysqlsource

0 commentaires

2
votes

Stop MySQLD sur le premier serveur, copiez le répertoire de données (généralement / var / lib / mysql) du serveur 1 au serveur 2, démarrez MySQLD sur le deuxième serveur, et il sera maintenant identique au premier.

Vous n'avez pas à utiliser les outils d'importation / exportation si vous pouvez arrêter le serveur pendant que vous copiez les fichiers de données. Surtout si vous pouvez compresser les fichiers avant de les copier, ce sera le moyen le plus rapide.


1 commentaires

Cette solution est la meilleure si vous avez la même version.