Nur mysqldump-Daten


Antworten:


553
mysqldump --no-create-info ...

Sie können auch verwenden:

  • --skip-triggers: Wenn Sie Trigger verwenden
  • --no-create-db: Wenn Sie die --databases ...Option verwenden
  • --compact: wenn Sie zusätzliche Kommentare loswerden möchten

47
Hier ist die volle cmd für die Kopie mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Pasters

2
Wenn Sie erhalten Access denied for user ... to database '...' when doing LOCK TABLES, verwenden Sie--single-transaction
Rolf

@YzmirRamirez danke, aber zu Ihrer Information unter Windows musste ich doppelte Anführungszeichen verwenden --where. Zum Beispiel--where="id=2"
Kip

Dies war ein brillanter Sparer für mich. Vielen Dank.
Ken Ingram

149

Das sollte funktionieren:

# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql

# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql

# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql

HINWEIS: Zwischen -p& steht kein Leerzeichen[pass]


12
--no-create-dbist redundant bei der Verwendung--no-create-info
James McMahon

4
Ein Leerzeichen danach -pist in Ordnung
Danke

12
Im Allgemeinen ist es besser, nur -p zu verwenden, ohne das Kennwort anzugeben, damit das Kennwort nicht in Ihrem Bash-Verlauf gespeichert wird (Sie werden aufgefordert, das Kennwort einzugeben, nachdem Sie den Befehl ausgeführt haben).
Dan

2
Zusätzlich zu @ Dans Ratschlägen macht es das Passwort für jeden Benutzer sichtbar, der aktuelle Prozesse ps -ef
auflisten

1
Wenn Sie das Kennwort nach der -pOption mysqldumpweglassen, werden Sie zur Eingabe des Kennworts aufgefordert.
Melle

22
 >> man -k  mysqldump [enter in the terminal]

Sie finden die folgende Erklärung

--no-create-info, -t

Schreiben Sie keine CREATE TABLE-Anweisungen, die jede ausgegebene Tabelle neu erstellen. Hinweis Diese Option schließt Anweisungen zum Erstellen von Protokolldateigruppen oder Tabellenbereichen nicht aus der Ausgabe von mysqldump aus. Zu diesem Zweck können Sie jedoch die Option --no-tablespaces verwenden.

--keine Daten, -d

Schreiben Sie keine Tabellenzeileninformationen (dh geben Sie keinen Tabelleninhalt aus). Dies ist nützlich, wenn Sie nur die Anweisung CREATE TABLE für die Tabelle sichern möchten (z. B. um eine leere Kopie der Tabelle durch Laden der Speicherauszugsdatei zu erstellen).

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
Gibt es einen Grund für die doppelte Verwendung der Optionen '-t' und '-d'?
Erwan

19

Wenn Sie nur die INSERT-Abfragen möchten, verwenden Sie Folgendes:

mysqldump --skip-triggers --compact --no-create-info


Vielen Dank, dass Sie --compactdie zusätzlichen Kommentar-Aussagen loswerden
chiliNUT

2

Würde vorschlagen, das folgende Snippet zu verwenden. Funktioniert auch mit großen Tabellen einwandfrei (sonst würden Sie den Dump im Editor öffnen und nicht benötigte Inhalte entfernen, oder ?;)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

Zumindest MySQL 5.x erforderlich, aber wer läuft heutzutage mit alten Sachen .. :)


Ich bin kürzlich auf eine Situation gestoßen, in der eine Verbindung zu einem System hergestellt werden musste, das 4.x in der Produktion verwendet. Sie hatten Leerzeichen in Tabellen- und Spaltennamen, und meiner Meinung nach machten sie im Grunde alles falsch.
Elkvis


0

Versuchen Sie, in eine begrenzte Datei zu sichern.

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

Beim Versuch, Daten mit der akzeptierten Antwort zu exportieren, wurde folgende Fehlermeldung angezeigt:

ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

Wie oben erwähnt:

mysqldump --no-create-info

Exportiert die Daten, exportiert aber auch die create trigger-Anweisungen. Wenn Sie wie ich Ihre Datenbankstruktur (die auch Trigger enthält) mit einem Befehl ausgeben und dann den obigen Befehl verwenden, um die Daten abzurufen, sollten Sie auch '--skip-triggers' verwenden.

Also, wenn Sie nur die Daten wollen:

mysqldump --no-create-info --skip-triggers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.