Ini adalah cmd penuh untuk copy pastermysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez
2
Jika Anda mendapatkannya Access denied for user ... to database '...' when doing LOCK TABLES, gunakan--single-transaction
Rolf
@YzmirRamirez terima kasih tapi FYI di windows saya harus menggunakan tanda kutip ganda untuk --where. Misalnya,--where="id=2"
Kip
Ini adalah penghemat yang brilian bagi saya. Terima kasih.
Ken Ingram
149
Ini seharusnya bekerja:
# To export to file (data only)
mysqldump -u [user]-p[pass]--no-create-info mydb > mydb.sql
# To export to file (structure only)
mysqldump -u [user]-p[pass]--no-data mydb > mydb.sql
# To import to database
mysql -u [user]-p[pass] mydb < mydb.sql
--no-create-dbredundan saat menggunakan--no-create-info
James McMahon
4
Ruang setelah -pbaik
Terima kasih
12
Biasanya lebih baik menggunakan -p tanpa memberikan kata sandi sehingga kata sandi tidak disimpan dalam bash history Anda (Anda akan diminta untuk memasukkan kata sandi setelah Anda menjalankan perintah).
Dan
2
Selain saran @ Dan, ini juga membuat kata sandi terlihat oleh semua pengguna yang dapat mendaftar proses saat ini ( ps -ef)
TMG
1
Meninggalkan kata sandi setelah -popsi membuat mysqldumpmeminta kata sandi.
Melle
22
>> man -k mysqldump [enter in the terminal]
Anda akan menemukan penjelasan di bawah ini
--tidak-buat-info, -t
Jangan menulis pernyataan CREATE TABLE yang membuat ulang setiap tabel yang dibuang. Catatan Opsi ini tidak mengecualikan pernyataan yang membuat grup file log atau tablespace dari output mysqldump; Namun, Anda dapat menggunakan opsi --no-tablespaces untuk tujuan ini.
--no-data, -d
Jangan menulis informasi baris tabel apa pun (yaitu, jangan membuang konten tabel). Ini berguna jika Anda ingin membuang hanya pernyataan CREATE TABLE untuk tabel (misalnya, untuk membuat salinan tabel yang kosong dengan memuat file dump).
terima kasih untuk --compactyang menghilangkan pernyataan komentar tambahan
chiliNUT
2
Sarankan menggunakan cuplikan berikut. Bekerja dengan baik bahkan dengan tabel besar (jika tidak, Anda akan membuka dump di editor dan menghapus hal-hal yang tidak dibutuhkan, kan?;)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
Setidaknya mysql 5.x diperlukan, tetapi siapa yang menjalankan barang-barang lama saat ini .. :)
Saya mengalami situasi baru-baru ini, di mana harus terhubung ke sistem yang menggunakan 4.x dalam produksi. Mereka memiliki ruang dalam nama tabel dan kolom, dan menurut saya, pada dasarnya mereka melakukan semua yang salah.
Ketika mencoba mengekspor data menggunakan jawaban yang diterima saya mendapat kesalahan:
ERROR 1235(42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Seperti disebutkan di atas:
mysqldump --no-create-info
Akan mengekspor data tetapi juga akan mengekspor pernyataan pemicu buat. Jika seperti saya, struktur basis data keluaran Anda (yang juga termasuk pemicu) dengan satu perintah dan kemudian menggunakan perintah di atas untuk mendapatkan data, Anda juga harus menggunakan '--skip-trigger'.
Jawaban:
Anda juga dapat menggunakan:
--skip-triggers
: jika Anda menggunakan pemicu--no-create-db
: jika Anda menggunakan--databases ...
opsi--compact
: jika Anda ingin menyingkirkan komentar tambahansumber
mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
, gunakan--single-transaction
--where
. Misalnya,--where="id=2"
Ini seharusnya bekerja:
CATATAN: tidak ada ruang antara
-p
&[pass]
sumber
--no-create-db
redundan saat menggunakan--no-create-info
-p
baikps -ef
)-p
opsi membuatmysqldump
meminta kata sandi.Anda akan menemukan penjelasan di bawah ini
sumber
Jika Anda hanya ingin kueri INSERT, gunakan yang berikut ini:
mysqldump --skip-triggers --compact --no-create-info
sumber
--compact
yang menghilangkan pernyataan komentar tambahanSarankan menggunakan cuplikan berikut. Bekerja dengan baik bahkan dengan tabel besar (jika tidak, Anda akan membuka dump di editor dan menghapus hal-hal yang tidak dibutuhkan, kan?;)
Setidaknya mysql 5.x diperlukan, tetapi siapa yang menjalankan barang-barang lama saat ini .. :)
sumber
Cukup buang data dalam format teks terbatas .
sumber
Cobalah untuk membuang ke file yang dibatasi.
sumber
Ketika mencoba mengekspor data menggunakan jawaban yang diterima saya mendapat kesalahan:
Seperti disebutkan di atas:
Akan mengekspor data tetapi juga akan mengekspor pernyataan pemicu buat. Jika seperti saya, struktur basis data keluaran Anda (yang juga termasuk pemicu) dengan satu perintah dan kemudian menggunakan perintah di atas untuk mendapatkan data, Anda juga harus menggunakan '--skip-trigger'.
Jadi jika Anda ingin HANYA data:
sumber