2010-12-10 7 views
12

Ich habe zwei dedizierte Server mit Root-Zugriff. Beide betreiben Linux. Ich möchte die Datenbank von Server1 nach Server2 importieren. Ich habe bereits eine leere Datenbank auf Server2 erstellt. Ich möchte den Linux-Befehl kennen, über den ich die Datenbank direkt importieren kann? Gibt es eine solche Funktion? Kann ich mysqldump verwenden? Ich möchte vermeiden, zuerst Datenbank-Backup auf Server1, dann verschieben Sie diese Datei auf Server2, und dann importieren Sie diese Datei. Kann der Import direkt mit einem Befehl ausgeführt werden?Importieren von MySQL-Datenbank von einem Server zum anderen

Dank

+0

+1 Ich bin auf der Suche nach dem gleichen –

Antwort

13

Wenn Sie eine Datei vermeiden möchten erstellen, übertragen sie, und laden es, können Sie einfach in das Rohr mysqldump entweder ein mysql auf dem anderen Server ausgeführt wird, oder ein ssh mysql auf dem anderen Server.

MySQL an die Remote-Box anschließen:

mysqldump --all-databases | mysql -h yourserver.com 

ssh Verwenden von auf den anderen Server

mysqldump --all-databases | ssh [email protected] mysql 

Verwenden Sie die mysqldump --all-Datenbanken verbinden sie alle zu übertragen, oder einfach nur Spezifizieren Sie Datenbanknamen. Weitere Informationen finden Sie unter mysqldump documentation.

Sie können auch die MySQL-Funktion "Replikation" verwenden, obwohl dies etwas mehr Zeit für die Einrichtung benötigt und ziemlich kompliziert ist. Wahrscheinlich nicht die ganze Zeit und Mühe nur für eine einzige Migration wert.

+0

Danke für die Antwort, aber ich bin ein wenig verwirrt, was zu tun ist. Kannst du bitte etwas ausarbeiten? Ich meine, soll ich den ersten Befehl auf Server1 und den zweiten Befehl auf Server2 ausführen, nachdem ich eine Verbindung über SSH hergestellt habe? – Ali

+1

Ali: Sie können beide Befehle auf Server1 ausführen. Der erste Befehl öffnet eine mysqlconnection TO Server2 (Name nach '-h'). Der zweite Befehl öffnet eine ssh-Verbindung zu Server2 selbst und führt die mysql-Client-Anwendung aus, wobei die Ausgabe von mysqldump auf Server1 als Eingabe für mysql auf Server2 verwendet wird. Übertragen Sie daher die Datenbank. – Konerak

1
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C [email protected] “mysql -uUSER -pPASS NEW_DB_NAME” 

Dumps eine MySQL-Datenbank über einen komprimierten SSH-Tunnel und verwendet sie als Eingabe für mysql

source

2

Stopp mysqld auf dem ersten Server, das Datenverzeichnis kopieren (normalerweise/var/lib/mysql) von Server 1 zu Server 2, starten Sie mysqld auf dem zweiten Server und es ist nun identisch mit dem ersten.

Sie müssen die Import-/Export-Tools nicht verwenden, wenn Sie den Server anhalten können, während Sie die Datendateien kopieren. Besonders wenn Sie die Dateien vor dem Kopieren komprimieren können, ist dies der schnellste Weg.

+0

Diese Lösung ist die beste, wenn Sie die gleiche Version haben. –

Verwandte Themen