Ich habe vor Jahren mit einem Linux-Profi zusammengearbeitet, der diesen tollen Trick gemacht hat. Er könnte einen mysqldump ausführen, aber die Ausgabe auf eine scp / ssh-Verbindung umleiten, anstatt auf die Festplatte zu schreiben . Wir haben diese Stille ein bisschen genutzt, wo ich früher gearbeitet habe, aber ich kann mich nicht mehr erinnern, wie ich das machen soll.
Ich stehe jetzt vor dem Problem, dass sich meine Festplatte in meinem Server in den letzten Zügen befindet und für intensive Zwecke permanent als schreibgeschützt bereitgestellt ist.
Ich hatte gehofft, diese Befehlszeilentrickserei zu nutzen, um meine Datenbanken weiterhin auf einem neuen Server sichern zu können, da das Schreiben des Dumps auf die lokale Festplatte und das Übertragen davon eindeutig nicht in Frage kommen.
Ist das eigentlich ein kleiner Trick überhaupt möglich? Wenn ja, wie lautet die Syntax?
Ich habe seitdem aufgrund des Problems mit dem schreibgeschützten Dateisystem festgestellt, dass ich nicht einmal eine Verbindung zu MySQL herstellen kann, um den Dump durchzuführen. Aber Ihr Feedback war großartig und sollte hoffentlich in Zukunft jemand anderem von Nutzen sein
Antworten:
mysqldump dbname | ssh [email protected] "mysql -D dbname"
das sollte funktionieren :-)
Richten Sie auch Schlüssel zwischen den Systemen ein, damit Sie dies tun können, ohne einen Login / Pass zu benötigen :-)
quelle
quelle
mysqldump -p <dbname> | ssh <user>@<ip_address> "cat > <filename>.sql"
genau das ausgeführt, was ich brauchte.Ich mag die Antwort von @ GlennKelley, wollte aber auf Folgendes hinweisen:
Wir hatten eine Datenbank mit 450 GB, auf dem Host wurden jedoch nur 500 GB bereitgestellt. Wir konnten nicht lokal exportieren, also haben wir remote exportiert. Wir haben die Ausgabe überprüft und es gab Hunderte von Fällen, in denen die Ausgabe aufgrund von Pipe-Pufferungsproblemen beschädigt war.
Die beste Lösung ist, von dem Zielhost, auf dem Ihr Dump enden soll, auszuführen,
mysqldump
aber die-h
Option für den Host zu verwenden. Zeigen Sie mit dem Host auf den MySQL-Server und exportieren Sie die Daten mit a>
.quelle