mysql import sql über cli von Remote-Server
-
05-07-2019 - |
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?
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 .