Tylko dane mysqldump


Odpowiedzi:


552
mysqldump --no-create-info ...

Możesz również użyć:

  • --skip-triggers: jeśli używasz wyzwalaczy
  • --no-create-db: jeśli używasz --databases ...opcji
  • --compact: jeśli chcesz pozbyć się dodatkowych komentarzy

47
Oto pełny cmd dla pastery kopiującychmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez

2
Jeśli otrzymasz Access denied for user ... to database '...' when doing LOCK TABLES, użyj--single-transaction
Rolf

@YzmirRamirez dzięki, ale FYI w systemie Windows musiałem użyć podwójnego cudzysłowu --where. Na przykład--where="id=2"
Kip,

To był dla mnie genialny wygaszacz. Dzięki.
Ken Ingram

149

To powinno działać:

# 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

UWAGA: nie ma spacji między -p&[pass]


12
--no-create-dbjest zbędny podczas używania--no-create-info
James McMahon,

4
Miejsce po -pjest w porządku
Dziękuję

12
Ogólnie lepiej jest użyć opcji -p bez podania hasła, aby hasło nie było przechowywane w historii bash (po uruchomieniu polecenia pojawi się monit o podanie hasła).
Dan

2
Oprócz porady @ Dana, hasło to jest również widoczne dla każdego użytkownika, który może wyświetlić listę bieżących procesów ( ps -ef)
TMG

1
Pozostawienie hasła po -popcji powoduje wyświetlenie mysqldumpmonitu o podanie hasła.
Melle

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

znajdziesz poniższe wyjaśnienie

--no-create-info, -t

Nie pisz instrukcji CREATE TABLE, które odtwarzają każdą zrzuconą tabelę. Uwaga Ta opcja nie wyklucza instrukcji tworzących grupy plików dziennika lub obszary tabel z danych wyjściowych mysqldump; można jednak w tym celu użyć opcji --no-tablespaces.

- brak danych, -d

Nie pisz żadnych informacji o wierszach tabeli (to znaczy nie zrzucaj zawartości tabeli). Jest to przydatne, jeśli chcesz zrzucić tylko instrukcję CREATE TABLE dla tabeli (na przykład, aby utworzyć pustą kopię tabeli, ładując plik zrzutu).

# 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
czy istnieje powód, aby używać dwukrotnie opcji „-t” i „-d”?
erwan

19

Jeśli chcesz tylko wstawić zapytania, użyj następujących poleceń:

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


dziękuję za to, że --compactpozbyłem się dodatkowych komentarzy
chiliNUT

2

Sugeruje użycie następującego fragmentu kodu. Działa dobrze nawet z dużymi tabelami (w przeciwnym razie otworzyłbyś zrzut w edytorze i usunął niepotrzebne rzeczy, prawda?)

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

Wymagany co najmniej mysql 5.x , ale kto dziś obsługuje stare rzeczy :)


Niedawno natknąłem się na sytuację, w której musiałem połączyć się z systemem, który używa 4.x w produkcji. Mieli spacje w nazwach tabel i kolumn i moim zdaniem robili właściwie wszystko źle.
Elkvis


0

Spróbuj zrzucić plik z ogranicznikami.

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

0

Podczas próby wyeksportowania danych przy użyciu zaakceptowanej odpowiedzi wystąpił błąd:

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'

Jak wspomniano powyżej:

mysqldump --no-create-info

Wyeksportuje dane, ale wyeksportuje również instrukcje tworzenia wyzwalaczy. Jeśli tak jak ja, twoja wyjściowa struktura bazy danych (która obejmuje również wyzwalacze) za pomocą jednego polecenia, a następnie za pomocą powyższego polecenia, aby uzyskać dane, powinieneś również użyć opcji --skip-triggers.

Więc jeśli chcesz TYLKO dane:

mysqldump --no-create-info --skip-triggers
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.