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]
--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).
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.
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.
Antworten:
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öchtenquelle
mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
, verwenden Sie--single-transaction
--where
. Zum Beispiel--where="id=2"
Das sollte funktionieren:
HINWEIS: Zwischen
-p
& steht kein Leerzeichen[pass]
quelle
--no-create-db
ist redundant bei der Verwendung--no-create-info
-p
ist in Ordnungps -ef
-p
Optionmysqldump
weglassen, werden Sie zur Eingabe des Kennworts aufgefordert.Sie finden die folgende Erklärung
quelle
Wenn Sie nur die INSERT-Abfragen möchten, verwenden Sie Folgendes:
mysqldump --skip-triggers --compact --no-create-info
quelle
--compact
die zusätzlichen Kommentar-Aussagen loswerdenWü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 ?;)
Zumindest MySQL 5.x erforderlich, aber wer läuft heutzutage mit alten Sachen .. :)
quelle
Speichern Sie die Daten einfach im abgegrenzten Textformat .
quelle
Versuchen Sie, in eine begrenzte Datei zu sichern.
quelle
Beim Versuch, Daten mit der akzeptierten Antwort zu exportieren, wurde folgende Fehlermeldung angezeigt:
Wie oben erwähnt:
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:
quelle