Ich ziehe von Linode weg, weil ich nicht über die notwendigen Linux-Sysadmin-Kenntnisse verfüge. Bevor ich den Übergang zu einem eher einsteigerfreundlichen Dienst vollziehe, muss ich den Inhalt einer MySQL-Datenbank herunterladen. Gibt es eine Möglichkeit, dies über die Befehlszeile zu tun?
Antworten
Zu viele Anzeigen?Sie können dies mit der Funktion mysqldump Befehlszeilenfunktion.
Zum Beispiel:
Wenn es eine ganze DB ist, dann:
$ mysqldump -u [uname] -p db_name > db_backup.sql
Wenn es alle DBs sind, dann:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
Wenn es sich um bestimmte Tabellen innerhalb einer DB handelt, dann:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
Sie können sogar so weit gehen, die Ausgabe mit gzip automatisch zu komprimieren (wenn Ihre DB sehr groß ist):
$ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz
Wenn Sie dies tun möchten per Fernzugriff und Sie Zugriff auf den fraglichen Server haben, dann würde folgendes funktionieren (vorausgesetzt, der MySQL-Server läuft auf Port 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql
Es sollte die .sql
Datei in dem Ordner, von dem aus Sie die Befehlszeile ausführen.
EDIT: Aktualisiert, um die Einbeziehung von Passwörtern in CLI-Befehle zu vermeiden, verwenden Sie die -p
ohne das Passwort. Sie werden zur Eingabe aufgefordert und nicht aufgezeichnet.
Für das Herunterladen von einem entfernten Server gibt es ein einfaches Beispiel:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
Das -p zeigt an, dass Sie ein Passwort eingeben müssen, es bezieht sich nicht auf den db_name. Nach der Eingabe des Befehls werden Sie zur Eingabe des Passworts aufgefordert. Geben Sie es ein und drücken Sie die Eingabetaste.
- See previous answers
- Weitere Antworten anzeigen