sadece mysqldump verileri


Yanıtlar:


555
mysqldump --no-create-info ...

Ayrıca şunları kullanabilirsiniz:

  • --skip-triggers: tetikleyiciler kullanıyorsanız
  • --no-create-db: --databases ...seçeneği kullanıyorsanız
  • --compact: fazladan yorumlardan kurtulmak istiyorsanız

47
İşte kopya pastacıları için tam cmdmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez

2
Eğer alırsanız Access denied for user ... to database '...' when doing LOCK TABLES, kullanın--single-transaction
Rolf

@YzmirRamirez teşekkürler ama pencerelerde FYI için çift tırnak kullanmak zorunda kaldım --where. Örneğin,--where="id=2"
Kip

Bu benim için harika bir koruyucuydu. Teşekkürler.
Ken Ingram

149

Bu çalışmalı:

# 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

NOT:-p & arasında boşluk yoktur[pass]


12
--no-create-dbkullanırken gereksiz--no-create-info
James McMahon

4
Sonra bir boşluk -piyi
Teşekkürler

12
Parolayı bas geçmişinizde saklamamak için parolayı sağlamadan yalnızca -p'yi kullanmak daha iyidir (komutu çalıştırdıktan sonra parolayı girmeniz istenir).
Dan

2
@ Dan'ın tavsiyesine ek olarak, mevcut işlemleri listeleyebilen herhangi bir kullanıcı için şifreyi görünür hale getirir ( ps -ef)
TMG

1
Sonra şifreyi dışarı bırakılması -pseçeneği kılan mysqldumpparola istemi.
Melle

22
 >> man -k  mysqldump [enter in the terminal]

aşağıdaki açıklamayı bulacaksınız

--no-create-info, -t

Her dökülen tabloyu yeniden oluşturan CREATE TABLE ifadeleri yazmayın. Not Bu seçenek, mysqldump çıktısından günlük dosyası grupları veya tablo alanları oluşturan ifadeleri hariç tutmaz; ancak, bu amaç için --no-tablespaces seçeneğini kullanabilirsiniz.

--no-veri, -d

Herhangi bir tablo satırı bilgisi yazmayın (yani, tablo içeriğini dökmeyin). Bu, yalnızca tablo için CREATE TABLE deyimini dökmek istiyorsanız yararlıdır (örneğin, döküm dosyasını yükleyerek tablonun boş bir kopyasını oluşturmak için).

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
'-t' ve '-d' seçeneğinin iki kez kullanılmasının bir nedeni var mı?
erwan

19

Yalnızca INSERT sorgularını istiyorsanız, aşağıdakileri kullanın:

mysqldump --skip-triggers --compact --no-create-info


--compactekstra yorum ifadelerinden kurtulduğunuz için teşekkür ederiz
chiliNUT

2

Aşağıdaki pasajı kullanmanızı öneririm. Büyük tablolarda bile iyi çalışır (aksi takdirde editörde dökümü açar ve gereksiz şeyleri çıkarırsınız, değil mi?)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

En azından mysql 5.x gerekli, ancak günümüzde eski şeyleri kim çalıştırıyor .. :)


Son zamanlarda, üretimde 4.x kullanan bir sisteme bağlanmak zorunda kaldığım bir durumla karşılaştım. Tablo ve sütun adlarında boşluklar vardı ve bence, temelde her şeyi yanlış yapıyorlardı.
Elkvis


0

Sınırlandırılmış bir dosyaya dökmeyi deneyin.

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

Kabul edilen yanıtı kullanarak verileri dışa aktarmaya çalışırken bir hata aldım:

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'

Yukarıda belirtildiği gibi:

mysqldump --no-create-info

Verileri dışa aktarır ancak aynı zamanda create tetikleyici ifadelerini dışa aktarır. Eğer benim gibi bir komutla çıkış veritabanı yapınız (tetikleyiciler de içerir) ve daha sonra veri almak için yukarıdaki komutu kullanarak '--skip-triggers' kullanmalısınız.

Yani verileri SADECE istiyorsanız:

mysqldump --no-create-info --skip-triggers
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.