Wie bekomme ich eine tab-getrennte MySQL-dump von einem remote-host ?
Einen mysqldump Befehl wie den folgenden:
mysqldump -u<username> -p<password> -h<remote_db_host> -T<target_directory> <db_name> --fields-terminated-by=,
schreiben aus zwei Dateien für jede Tabelle (man ist das schema, das andere ist die CSV-Tabelle Daten). Um die CSV-Ausgabe müssen Sie ein Zielverzeichnis anzugeben (mit -T). Wenn -T übergeben wird, mysqldump, es schreibt die Daten auf das Dateisystem des Servers, wo mysqld läuft - NICHT das system, in dem der Befehl ausgegeben wird.
Gibt es einen einfachen Weg-dump, CSV-Dateien aus einem remote-system ?
Hinweis: ich bin vertraut mit der Verwendung einer einfachen mysqldump und den Umgang mit dem STDOUT-Ausgabe, aber ich weiß nicht, einen Weg, um CSV-Tabelle die Daten, die Art und Weise, ohne dabei einige erhebliche analysieren. In diesem Fall verwende ich die option-X und-dump xml.
- Haben Sie Glück bei der Suche, eine Lösung für dieses?
- Sorry - noch nicht. Ich denke, die xml-option ist Ihre beste Wette (vorausgesetzt, Sie verwenden eine neue genug, mysql-version)
- Ich habe Zugriff auf den remote-host, aber die SELECT-INTO-DATEI wurde nicht, so landete ich mit diesem: mysql -h"host" -u"user" -p"password" -e"SELECT * FROM mydb.mytable" > /tmp/Tabelle.csv. Und dann von meinem lokalen Rechner: scp my_user@remote_server:/tmp/table.csv ~/Tabelle.csv
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchte ich hinzufügen codeman Antwort. Es funktionierte, aber musste über 30 Minuten tüfteln für meine Bedürfnisse.
Mein webserver verwendet centos 6/cpanel und die Fahnen und die Sequenz, die codeman der oben hat bei mir nicht funktioniert und ich musste neu anordnen und mit anderen Fahnen, etc.
Außerdem habe ich diese für eine lokale Datei dump, es ist nicht nur nützlich für die remote-DBs, denn ich hatte zu viele Probleme mit selinux und mysql-Benutzer Berechtigungen für SELECT INTO OUTFILE-Befehle, etc.
, Was funktioniert auf meinem Centos+Cpanel-Server
Vorsichtsmaßnahmen
Keine Spaltennamen
Kann ich nicht bekommen Spaltennamen erscheinen an der Spitze. Ich habe versucht, das hinzufügen der Flagge:
aber es machte keinen Unterschied. Ich bin immer noch nicht auf diese ein. Ich habe derzeit hinzufügen, um die Datei nach der Verarbeitung.
Auswahl einer Datenbank
Aus irgendeinem Grund konnte ich mich nicht enthalten den Datenbanknamen in der Kommandozeile. Ich habe versucht, mit
in der Kommandozeile, aber ich habe immer die Erlaubnis Fehler, so dass ich endete mit den folgenden oben in meiner Abfrage.sql:
Viele Systeme, MySQL läuft als ein bestimmter Benutzer (z.B. Benutzer "mysql") und Ihre mysqldump wird scheitern, wenn der MySQL-user hat keine Schreibrechte für das dump directory - es spielt keine Rolle, was Ihre eigene Schreibrechte in diesem Verzeichnis. Ändern Sie Ihre Verzeichnis (zumindest vorübergehend) zum Welt-beschreibbar (777) wird oft fixieren Sie Ihre export-problem.