mysqldump
Tek başına yapmak mümkün mü SQL query
?
Tüm veritabanını dökmek demek , phpmyadmin
ihracat yaptığınızda olduğu gibiSQL
mysqldump
Tek başına yapmak mümkün mü SQL query
?
Tüm veritabanını dökmek demek , phpmyadmin
ihracat yaptığınızda olduğu gibiSQL
Yanıtlar:
mysqldump değil, mysql cli ...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
isterseniz bir dosyaya yeniden yönlendirebilirsiniz:
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
Güncelleme: Orijinal gönderi sorgudan veritabanından döküp dökemeyeceğini sordu. Sorduğu ve kastettiği farklıydı. Gerçekten tüm tabloları mysqldump istedim.
mysqldump --tables myTable --where="id < 1000"
Bu çalışmalı
mysqldump --databases X --tables Y --where="1 limit 1000000"
Bir sorguyu şu şekilde csv olarak atabilirsiniz:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scp
bağlantı sona erdikten sonra dökülen dosyayı alabilirsiniz . işte bir örnek. scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
Where sorgusunu kullanarak tabloyu dökümü:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
Tüm tabloyu dök:
mysqldump mydatabase mytable > data.sql
Notlar:
mydatabase
, mytable
ve istediğiniz değerlerle nerede beyanı.mysqldump
içerecektir DROP TABLE
ve CREATE TABLE
çıktısı bildirimler. Bu nedenle, kaydedilen veri dosyasından geri yüklerken tablonuzdaki tüm verileri silmek istemiyorsanız , --no-create-info
seçeneği kullandığınızdan emin olun .-h
, -u
ve -p
seçenekleri eklemeniz gerekebilir .Beklediğiniz bir çıktıyı üretmek için mysqldump'ta --where seçeneğini kullanabilirsiniz:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Test.t1 dosyasından en fazla 100 satır veritabanı tablosundan atılacaktır.
Şerefe, WB
Son n kayıt miktarınızı bir dosyaya vermek istiyorsanız, aşağıdakileri çalıştırabilirsiniz:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
Yukarıdakiler, dışa aktardığınız tablonun otomatik olarak artırılan bir kimlik sütununa sahip olduğunu varsayarak, son 100 kaydı export_file.sql dosyasına kaydeder.
Kullanıcı, localhost, veritabanı ve tablo değerlerini değiştirmeniz gerekecektir. İsteğe bağlı olarak id sütununu değiştirebilir ve dosya adını dışa aktarabilirsiniz.
MySQL Workbench ayrıca GUI'de düzgün bir şekilde bu özelliğe sahiptir. Bir sorgu çalıştırın, Dışa Aktar / İçe Aktar'ın yanındaki kaydet simgesini tıklayın:
Sonra listeden "SQL INSERT deyimleri (* .sql)" seçin.
Bir ad girin, kaydet'i tıklayın, tablo adını onaylayın ve döküm dosyanızı alacaksınız.
Yukarıdakilerin çoğunu birleştirmek benim gerçek pratik örneğim, hem metre hem de zaman damgasına dayalı kayıtları seçmek. Yıllardır bu komuta ihtiyacım var. Gerçekten hızlı çalışır.
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 Sorgu sonuçları komut satırını dışa aktar :
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt