Kiedy skończą Kopie zapasowe bazy danych MySQL, często używa się polecenia mysqldump brak opcji. Jednak to polecenie ma wiele ciekawych opcji, które pozwalają na wykonywanie zaawansowanych kopii zapasowych.
Domyślnie Polecenie mysqldump generuje kopię struktury sql wszystkich tabel w bazie danych wskazany w pliku tekstowym sql. Aby uwzględnić tylko jedną lub więcej tabel, wprowadź ich nazwy po nazwie bazy danych.
Z okna terminala w katalogu mysql:
# Kopia zapasowa pojedynczej tabeli $ mysqldump -user = user --password = klucz bazy danych tabeli> backup_sql
# Utwórz kopię zapasową trzech tabel $ mysqldump -user = user --password = klucz bazy danych table1 table2 table3> backup_sqlPrzykłady 1 lub 3 tabel.
1. Wykluczanie niektórych tabel z kopii zapasowej
Aby nie uwzględniać konkretnej tabeli w kopii zapasowej, musimy ją wskazać opcją --ignore-table, której wartość należy wskazać
Jeśli na przykład wykonujesz kopię zapasową bazy danych o nazwie commerce, ale nie chcesz, aby została uwzględniona tabela o nazwie sprzedaż, uruchom następujące polecenie:
$ mysqldump --user = użytkownik - hasło = hasło --ignore-table = kupiec.sprzedawca> backup_back.sqlInnymi słowy, skopiuj całą bazę danych handlowych z wyjątkiem tabeli sprzedaży. Jeśli chcemy wykluczyć kilka tabel, musimy użyć następującego polecenia:
$ mysqldump --user = użytkownik --password = hasło --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = handel. ceny handlowe> backup_copy.sql(Aby wykluczyć wiele tabel, podaj ich nazwy za pomocą tylu opcji --ignore-table)
2. Ograniczenie liczby rekordów w każdej tabeli
Domyślnie polecenie mysqldump skopiuje wszystkie rekordy ze wszystkich tabel. Jeśli chcesz wcześniej filtrować rekordy, dodaj opcję --where, która pozwala wskazać warunek typu WHERE, który jest dodawany do zapytań SELECT wykonywanych w celu wyodrębnienia wszystkich rekordów:
$ mysqldump --user = użytkownik --password = hasło --where = "wiek> 18 ORAZ wiek backup_back.sqlJeśli chcemy wydobyć tylko niektóre rekordy z bazy, na przykład pierwsze 500
$ mysqldump --user = użytkownik -password = hasło --where = baza danych "1 limit 500"> backup.sqlZostałyby wydobyte z limitem 500.
3. Skopiuj tylko strukturę tabel, ale nie ich dane
Domyślnie Komenda mysqldump zrzuca zarówno strukturę tabel, jak i wszystkie ich informacje. Jeśli interesuje Cię tylko zrzucanie struktury tabel i kolumn, użyj opcji --no-data. Możesz więc utworzyć kolejną bazę danych dokładnie taką samą, ale pustą:
$ mysqldump --user = użytkownik --password = hasło --no-data database> backup_sqlZwykle po wygenerowaniu wstawek są one grupowane w jedną instrukcję, aby zapisać wiersze kodu w następujący sposób:
INSERT INTO table VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');Jest to zachowanie, które może powodować błędy w starszych systemach, które nie mogą przetwarzać długich linii. Podobnie możesz napotkać problemy z edytorem tekstu podczas próby otwarcia pliku kopii zapasowej, który zawiera te długie wiersze.
Jeśli mamy do czynienia z takim przypadkiem, możemy dodać opcję --extended-insert = false aby każda INSERT była uruchamiana z własnym oświadczeniem:
$ mysqldump --user = użytkownik -password = hasło --extended-insert = false baza danych> backup_sqlWynik będzie następujący:
INSERT INTO table VALUES (1, 'nazwa1'); INSERT INTO table VALUES (2, 'nazwa2'); INSERT INTO table VALUES (3, 'nazwa3');Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt