Apakah mungkin dilakukan mysqldump
sendiri SQL query
?
Maksud saya membuang seluruh database, seperti phpmyadmin
halnya ketika Anda mengeksporSQL
Apakah mungkin dilakukan mysqldump
sendiri SQL query
?
Maksud saya membuang seluruh database, seperti phpmyadmin
halnya ketika Anda mengeksporSQL
Jawaban:
bukan mysqldump, tapi mysql ...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
Anda dapat mengalihkannya ke file jika Anda ingin:
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
Pembaruan: Posting asli ditanya apakah ia dapat membuang dari database dengan permintaan. Apa yang dia tanyakan dan apa maksudnya berbeda. Dia benar-benar ingin hanya mysqldump semua tabel.
mysqldump --tables myTable --where="id < 1000"
Ini seharusnya bekerja
mysqldump --databases X --tables Y --where="1 limit 1000000"
--no-create-info
opsi. Lihat jawaban saya sebagai contoh.
Anda dapat membuang kueri sebagai csv seperti ini:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scp
setelah koneksi diakhiri. ini sebuah contoh. scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
Buang tabel menggunakan kueri tempat:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
Dump seluruh tabel:
mysqldump mydatabase mytable > data.sql
Catatan:
mydatabase
,, mytable
dan pernyataan di mana dengan nilai yang Anda inginkan.mysqldump
akan menyertakan DROP TABLE
dan CREATE TABLE
pernyataan dalam outputnya. Oleh karena itu, jika Anda ingin tidak menghapus semua data di tabel Anda saat memulihkan dari file data yang disimpan, pastikan Anda menggunakan --no-create-info
opsi.-h
,, -u
dan -p
opsi ke contoh perintah di atas untuk menentukan host database, pengguna, dan kata sandi yang Anda inginkan, masing-masing.Anda bisa menggunakan opsi --di mana di mysqldump untuk menghasilkan output yang Anda tunggu:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Paling banyak 100 baris dari test.t1 akan dibuang dari tabel database.
Cheers, WB
Jika Anda ingin mengekspor jumlah rekaman terakhir ke file, Anda dapat menjalankan yang berikut ini:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
Di atas akan menyimpan 100 catatan terakhir ke export_file.sql, dengan asumsi tabel tempat Anda mengekspor memiliki kolom id yang ditambahkan secara otomatis.
Anda perlu mengubah nilai pengguna, localhost, database dan tabel. Anda dapat mengubah kolom id dan mengekspor nama file secara opsional.
MySQL Workbench juga memiliki fitur ini dengan rapi di GUI. Cukup jalankan kueri, klik ikon simpan di sebelah Ekspor / Impor:
Kemudian pilih "pernyataan SQL INSERT (* .sql)" di daftar.
Masukkan nama, klik simpan, konfirmasi nama tabel dan Anda akan memiliki file dump Anda.
Menggabungkan banyak hal di atas di sini adalah contoh praktis saya yang sebenarnya, memilih catatan berdasarkan meterid & cap waktu. Saya membutuhkan perintah ini selama bertahun-tahun. Menjalankan sangat cepat.
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 Mengekspor baris perintah hasil permintaan :
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt