Ist es möglich, als mysqldumpSingle zu tun SQL query?
Ich meine, die gesamte Datenbank zu sichern , wie phpmyadmines beim Exportieren der Fall istSQL
Ist es möglich, als mysqldumpSingle zu tun SQL query?
Ich meine, die gesamte Datenbank zu sichern , wie phpmyadmines beim Exportieren der Fall istSQL
Antworten:
nicht mysqldump, sondern mysql cli ...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
Sie können es in eine Datei umleiten, wenn Sie möchten:
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
Update: Ursprünglicher Beitrag fragte, ob er per Abfrage aus der Datenbank sichern könne. Was er fragte und was er meinte, war anders. Er wollte wirklich nur alle Tische mysqldump.
mysqldump --tables myTable --where="id < 1000"
Das sollte funktionieren
mysqldump --databases X --tables Y --where="1 limit 1000000"
--no-create-infoOption hinzufügen . Siehe meine Antwort für ein Beispiel.
Sie können eine Abfrage wie folgt als CSV ausgeben:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scpnachdem die Verbindung beendet wurde. Hier ist ein Beispiel. scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
Speichern Sie eine Tabelle mit einer where-Abfrage:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
Einen ganzen Tisch wegwerfen:
mysqldump mydatabase mytable > data.sql
Anmerkungen:
mydatabase, mytableund die where - Anweisung mit dem gewünschten Werten.mysqldumpgehören DROP TABLEund CREATE TABLEin seinen Ausgabeanweisungen. Wenn Sie daher beim Wiederherstellen aus der gespeicherten Datendatei nicht alle Daten in Ihrer Tabelle löschen möchten , stellen Sie sicher, dass Sie die --no-create-infoOption verwenden.-h, -uund -pOptionen auf die Beispielbefehle oben , um die gewünschte Datenbank - Host, Benutzer angeben, und das Kennwort, respectively.Sie können die Option --where auf mysqldump verwenden, um eine Ausgabe zu erstellen, auf die Sie warten:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Maximal 100 Zeilen aus test.t1 werden aus der Datenbanktabelle ausgegeben.
Prost, WB
Wenn Sie Ihre letzten n Datensätze in eine Datei exportieren möchten, können Sie Folgendes ausführen:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
Mit dem obigen Befehl werden die letzten 100 Datensätze in export_file.sql gespeichert, vorausgesetzt, die Tabelle, aus der Sie exportieren, verfügt über eine automatisch inkrementierte ID-Spalte.
Sie müssen die Werte für Benutzer, localhost, Datenbank und Tabelle ändern. Sie können optional die ID-Spalte und den Namen der Exportdatei ändern.
MySQL Workbench hat diese Funktion auch ordentlich in der GUI. Führen Sie einfach eine Abfrage aus und klicken Sie auf das Speichersymbol neben Exportieren / Importieren:
Wählen Sie dann "SQL INSERT-Anweisungen (* .sql)" in der Liste.
Geben Sie einen Namen ein, klicken Sie auf Speichern, bestätigen Sie den Tabellennamen und Sie erhalten Ihre Dump-Datei.
Das oben Genannte hier zu kombinieren, ist mein praktisches Beispiel, Datensätze basierend auf Meterid und Zeitstempel auszuwählen. Ich habe diesen Befehl seit Jahren gebraucht. Wird sehr schnell ausgeführt.
mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep '^INSERT' > 5406.sql
mysql Exportiert die Befehlszeile der Abfrageergebnisse:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt