Czy można to zrobić mysqldumppojedynczo SQL query?
Mam na myśli zrzucenie całej bazy danych, podobnie jak phpmyadminpodczas eksportowania doSQL
Czy można to zrobić mysqldumppojedynczo SQL query?
Mam na myśli zrzucenie całej bazy danych, podobnie jak phpmyadminpodczas eksportowania doSQL
Odpowiedzi:
nie mysqldump, ale mysql cli ...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
możesz przekierować go do pliku, jeśli chcesz:
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
Aktualizacja: Oryginalny post zapytał, czy może zrzucić z bazy danych przez zapytanie. To, o co prosił i co miał na myśli, było inne. Naprawdę chciał po prostu przemyśleć wszystkie stoły.
mysqldump --tables myTable --where="id < 1000"
To powinno działać
mysqldump --databases X --tables Y --where="1 limit 1000000"
--no-create-infoopcję. Zobacz moją odpowiedź na przykład.
Możesz zrzucić zapytanie jako csv w następujący sposób:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scppo zakończeniu połączenia. oto przykład. scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
Zrzuć tabelę za pomocą zapytania where:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
Zrzuć cały stół:
mysqldump mydatabase mytable > data.sql
Uwagi:
mydatabase,mytable i gdzie sprawozdanie z żądanych wartości.mysqldumpdołącza DROP TABLEi CREATE TABLEinstrukcje w swoich wynikach. Dlatego jeśli nie chcesz usunąć wszystkich danych w tabeli podczas przywracania z zapisanego pliku danych, upewnij się, że używasz--no-create-info opcji.-h,-u oraz -popcje do przykładu powyżej poleceń w celu określenia żądanego hosta bazy danych, użytkownika i hasło, odpowiednio.Możesz użyć opcji --where na mysqldump, aby uzyskać dane wyjściowe, na które czekasz:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Maksymalnie 100 wierszy z test.t1 zostanie zrzuconych z tabeli bazy danych.
Pozdrawiam, WB
Jeśli chcesz wyeksportować ostatnią liczbę rekordów do pliku, możesz uruchomić następujące czynności:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
Powyższe spowoduje zapisanie ostatnich 100 rekordów w pliku export_file.sql, przy założeniu, że tabela, z której eksportujesz, ma kolumnę z automatycznie zwiększanym numerem.
Musisz zmienić wartości użytkownika, hosta lokalnego, bazy danych i tabeli. Opcjonalnie możesz zmienić kolumnę id i nazwę pliku eksportu.
MySQL Workbench ma tę funkcję również w GUI. Po prostu uruchom zapytanie, kliknij ikonę Zapisz obok Eksportuj / Importuj:
Następnie wybierz z listy „Instrukcje SQL INSERT (* .sql)”.
Wpisz nazwę, kliknij zapisz, potwierdź nazwę tabeli, a otrzymasz plik zrzutu.
Łącząc wiele z powyższego, to mój prawdziwy praktyczny przykład, wybierając rekordy na podstawie zarówno metrumid i znacznika czasu. Potrzebowałem tego polecenia od lat. Wykonuje się bardzo szybko.
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 Eksportuj wiersz polecenia wyników zapytania :
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt