Frage

Ich weiß, wie eine SQL-Datei über die cli importieren:

mysql -u USER -p DBNAME < dump.sql

, aber das ist, wenn die dump.sql Datei lokal ist. Wie könnte ich eine Datei auf einem Remote-Server?

War es hilfreich?

Lösung

Sie nicht sagen, was für den Netzwerkzugriff Sie auf den Remote-Server haben.

Angenommen, Sie SSH-Zugriff auf den Remote-Server haben, könnten Sie die Ergebisse eines entfernten mysqldump an den mysql-Befehl. Getestet habe ich nur dies, und es funktioniert gut:

ssh remote.com "mysqldump remotedb" | mysql localdb

Ich habe Sachen wie Benutzer, Passwort, Host in .my.cnf so bin ich nicht ständig sie eingeben - ärgerlich und schlecht für die Sicherheit auf Multi-User-Systemen, Sie Passwörter unverschlüsselt in der bash_history setzen! Aber Sie können die -u -p -h Sachen leicht hinzufügen zurück in die an beiden Enden, wenn Sie es brauchen:

ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb

Schließlich können Sie Rohr durch gzip die Daten über das Netzwerk zu komprimieren:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb

Andere Tipps

dachte nur, dass ich diese hinzufügen würde, wie ich auf Platz auf meinem lokalen VM ernsthaft niedrig war, aber wenn die SQL-Datei existiert bereits auf dem Remote-Server, den Sie tun können;

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>

würde ich benutzen wget entweder in eine Datei herunterladen oder Rohr in .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top