2010-09-16 15 views
6

Chcę zrzucić bazę danych mysql tylko tabele, które mają dane, Czy możesz podać mi swoje sugestie. to jest bardziej pomocneJak zrzucić bazę danych mysql?

Thanks & Pozdrawiam, Vara Kumar.PJD

+0

Jeśli tabele nie zawierają danych, to nie doda dużo do kopii zapasowej rozmiar. Dlaczego chcesz pominąć puste tabele? – Jayan

+0

Istnieje wiele tabel, nie chcę wykonywać kwerend pustych tabel podczas importu po cenach dumpingowych db. spowoduje to utratę danych. –

+0

Moim wymaganiem są tabele upuszczania i wstawianie danych do tych tabel z pliku po cenach dumpingowych. ten plik zawiera tabele z danymi i instrukcjami create-drop. –

Odpowiedz

2

Można użyć opcji --ignore-table, ale trzeba dowiedzieć się, które są puste stoły najpierw jak to nie jest możliwe bezpośrednio z mysqldump. Więc można zrobić

mysqldump -u username -p database --ignore-table=database.table1 --ignore-table=database.table2 > database.sql 
1
mysqldump <database options> table1 table2 table3 ... 
+0

jest wiele tabel, ciężko napisać każdy. czy jest jakaś opcja, która może zrzucić tabelę z danymi, a także tworzyć instrukcje add-drop –

0

Korzystając mysqldump (documentation located here). Jeśli nie określisz tabel, przyjmuje wszystkie tabele. Możesz także jawnie wybrać tabele do skopiowania lub zignorowania. Możesz powiedzieć, aby tworzyć instrukcje upuszczania przed instrukcjami tworzenia. Jeśli masz mysql 5.1.2, możesz powiedzieć, żeby skopiować procedury.

0

Podczas zrzucania całej bazy danych. Oczywiście ma duże dane. Więc może wolisz poniżej lepiej:

Tworzenie kopii zapasowych:

mysqldump -u [user] -p[password]--single-transaction --quick --all-databases | gzip > alldb.sql.gz 

Jeśli błąd

- Ostrzeżenie: Pomijanie danych z tabeli mysql.event. Podaj jawnie opcję --events.

Zastosowanie:

mysqldump -u [user] -p --events --single-transaction --quick --all-databases | gzip > alldb.sql.gz 

Przywracanie kopii zapasowych:

gunzip < alldb.sql.gz | mysql -u [user] -p[password] 

nadzieję, że pomoże :)

Powiązane problemy