Ist es möglich, als mysqldump
Single zu tun SQL query
?
Ich meine, die gesamte Datenbank zu sichern , wie phpmyadmin
es beim Exportieren der Fall istSQL
Ist es möglich, als mysqldump
Single zu tun SQL query
?
Ich meine, die gesamte Datenbank zu sichern , wie phpmyadmin
es 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-info
Option 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'
scp
nachdem 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
, mytable
und die where - Anweisung mit dem gewünschten Werten.mysqldump
gehören DROP TABLE
und CREATE TABLE
in 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-info
Option verwenden.-h
, -u
und -p
Optionen 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