Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 18434|Odpowiedź: 2

[Źródło] MySQL używa mysqldump do eksportu danych z warunkami

[Skopiuj link]
Opublikowano 26.04.2019 16:07:23 | | | |

Kopia zapasowa i eksport bazy MySQL
https://www.itsvse.com/thread-4004-1-1.html
(Źródło: Architect_Programmer)
Mysqldump importuje i eksportuje podsumowania baz danych
https://www.itsvse.com/thread-4353-1-1.html
(Źródło: Architect_Programmer)
Mysqldump eksportuje bazę danych "Access dennid"
https://www.itsvse.com/thread-4005-1-1.html
(Źródło: Architect_Programmer)

Jak pokazano w powyższym linku, zawartość całej bazy danych jest eksportowana, czy można ją wyeksportować z warunkami? Oczywiście, że możesz!


Polecenie:

Analiza parametrów:

  • -h: Określ adres bazy danych
  • --port: Określ port bazy danych, jeśli jest to domyślny port 3306, można go pominąć
  • -u: numer konta
  • -p: hasło
  • db_name: Odnosi się to do tego, którą bazę danych eksportować
  • tab_name: Odnosi się to do tego, którą tabelę eksportować
  • --gdzie: kryteria filtrowania danych
  • --no-create-info: eksportuje tylko dane bez dodawania instrukcji CREATE TABLE.


Na końcu podążaj ścieżką do miejsca, gdzie musisz wyeksportować magazyn.

Ilustrują:

-t: Tylko dane przewodnika

--gdzie: stan

--triggers=fałszywe: Nie kieruj triggerami

--zastąp: Zamień INSERT INTO na REPLACE INTO



Parametry:

--wszystkie-bazy danych, -A

Eksportuj wszystkie bazy danych.

mysqldump -uroot -p --all-databases

--wszystkie pola tabelowe , -Y

Wyeksportuj wszystkie przestrzenie tabelowe.

mysqldump -uroot -p --all-databases --all-tablespaces

--no-tablespaces , -y

Nie eksportuje się żadnych informacji z przestrzeni tabel.

mysqldump -uroot -p --all-databases --no-tablespaces

--dodaj-upuszcz-bazę danych

Dodaj polecenie drop database przed utworzeniem każdej bazy danych.

mysqldump -uroot -p --all-databases --add-drop-databases

--add-drop-table

Dodaj polecenie drop table przed utworzeniem każdej tabeli danych. (Domyślnie jest otwarte, użyj --pomij-dodaj-upuści-tabelę, aby anulować opcję)

mysqldump -uroot -p --all-databases (domyślnie dodaj polecenie drop)

mysqldump -uroot -p --all-databases –skip-add-drop-table (polecenie undrop)

--add-locks

Dodaj LOCK TABLES przed każdym eksportem tabeli i UNLOCK TABLE po tym. (domyślnie jest włączone, użyj --pomij-dodaj-blokad, aby anulować opcję)

mysqldump -uroot -p --all-databases (polecenie LOCK jest domyślnie dodawane)

mysqldump -uroot -p --all-databases –skip-add-locks (polecenie unlock dock)

--zezwalaj-słowa kluczowe

Pozwala na tworzenie nazw kolumn, które są słowami kluczowymi. Robi się to poprzez dodanie nazwy tabeli do nazwy każdej kolumny.

mysqldump -uroot -p --all-databases --allow-keywords

--apply-slave-instrukcje

Dodaj 'STOP SLAVE' przed 'CHANGE MASTER' oraz 'START SLAVE' na końcu eksportu.

mysqldump -uroot -p --all-databases --apply-slave-commands

--character-sets-dir

Katalog plików zestawów znaków

mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets

--komentarze

Dodatkowe informacje. Jest domyślnie włączony i można go anulować za pomocą --skip-comments

mysqldump -uroot -p --all-databases (domyślne komentarze rekordów)

mysqldump -uroot -p --all-databases --skip-comments (uncomment)

--kompatybilny

Eksportowane dane będą kompatybilne z innymi bazami danych lub starszymi wersjami MySQL. Wartości mogą być ANSI, MySQL323, MySQL40, PostgreSQL, Oracle, MSSQL, DB2, MaxDB, no_key_options, no_tables_options, no_field_options itd.

Aby użyć kilku wartości, odstaw je przecinkami. Nie jest gwarantowane, że będzie w pełni kompatybilny, ale tak bardzo, jak to możliwe.

mysqldump -uroot -p --all-databases --compatible=ansi

--compact

Eksportuj mniej informacji wyjściowych (do debugowania). Usuń struktury takie jak adnotacje oraz orłówka i reszki. Opcja jest dostępna: --pomij-dodaj-upuść-tabelę --pomiń-dodaj-zamki --pomij-komentarze --pominąć-wyłącz-klucze

mysqldump -uroot -p --all-databases --compact

--wstaw kompletny, -c

Użyj pełnej instrukcji insert (w tym nazwy kolumny). Może to poprawić efektywność wstawiania, ale może być wpływane przez max_allowed_packet parametry i powodować awarie wstawiania.

mysqldump -uroot -p --all-databases --complete-insert

--kompresja, -C

Włącz kompresję, aby przekazać wszystkie informacje między klientem a serwerem

mysqldump -uroot -p --all-databases --compress

--create-options, -a

Uwzględnij wszystkie opcje funkcji MySQL w instrukcji CREATE TABLE. (Domyślne ustawienie włączone)

mysqldump -uroot -p --all-databases

--bazy danych, -B

Eksportuj kilka baz danych. Wszystkie parametry nazw po parametrze traktowane są jako nazwy baz danych.

mysqldump -uroot -p --databases test mysql

--debuguj

Wypisz informacje debugujące do debugowania. Domyślna wartość to: d:t:o,/tmp/mysqldump.trace

mysqldump -uroot -p --all-databases --debug

mysqldump -uroot -p --all-databases --debug=" d:t:o,/tmp/debug.trace"

--debug-check

Sprawdź pamięć i instrukcje otwórz plik, a potem wyjdź.

mysqldump -uroot -p --all-databases --debug-check

--debug-info

Wyjście informacji debugowania i wyjście

mysqldump -uroot -p --all-databases --debug-info

--domyślny-zestaw znaków

Ustaw domyślny zestaw znaków, domyślna wartość to utf8

mysqldump -uroot -p --all-databases --default-character-set=latin1

--opóźnione wstawianie

INSERT opóźniony eksport danych

mysqldump -uroot -p --all-databases --delayed-insert

--delete-master-logs

Kopia zapasowa usuwa logi. Ten parametr automatycznie aktywuje --master-data.

mysqldump -uroot -p --all-databases --delete-master-logs

--wyłącz-klucze

Dla każdej tabeli użyj /*!40000 ALTER TABLE tbl_name WYŁĄCZ KLUCZE */; oraz /*!40000 ALTER TABLE tbl_name KLUCZE WŁĄCZANIA */; Oświadczenie odnosi się do stwierdzenia INSERT. Pozwala to na szybszy import zrzutowanych plików, ponieważ po wstawieniu wszystkich wierszy tworzy indeks. Ta opcja jest dostępna tylko dla tabel MyISAM, które domyślnie przyjmują stan otwarty.

mysqldump -uroot -p --all-databases

--wysypialnik

Ta opcja spowoduje dodanie głównej lokalizacji binlogu oraz nazwy pliku do pliku, z którego dołączone są eksportowane dane. Po ustawieniu na 1, polecenie CHANGE MASTER zostanie użyte do wyjścia do pliku danych. Gdy ustawisz na 2, dodaj informacje wyjaśniające przed poleceniem. Ta opcja włączy --zablokuj wszystkie tabele, chyba że zostanie określona --pojedyncza transakcja. Ta opcja automatycznie wyłącza opcję --lock-tables. Domyślna wartość to 0.

mysqldump -uroot -p --all-databases --dump-slave=1

mysqldump -uroot -p --all-databases --dump-slave=2

--wydarzenia, -E

Wydarzenia eksportowe.

mysqldump -uroot -p --all-databases --events

--rozszerzony-insert, -e

Użyj składni INSERT z wieloma kolumnami VALUES. To zmniejsza eksport plików i przyspiesza import. Domyślnie w stanie otwartym, użyj opcji --skip-extended-insert, aby anulować.

mysqldump -uroot -p --all-databases

mysqldump -uroot -p --all-databases--skip-extended-insert (unoption)

--pola-zakończone-przez-

Ignoruj podane pola w pliku eksportu. Używa się z opcją --tab, a nie dla --baz danych i --wszystkich baz danych

mysqldump -uroot -p test test --tab="/home/mysql" --fields-terminated-by="#"

--pola-zamknięte-przez-

Poszczególne pola w pliku wyjściowym są owinięte w dane znaki. Używa się z opcją --tab, a nie dla --baz danych i --wszystkich baz danych

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#"

--fields-optionally-enclosed-by-by

Pola w pliku wyjściowym są selektywnie opakowane w dane znaki. Używa się z opcją --tab, a nie dla --baz danych i --wszystkich baz danych

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#" --fields-optionally-enclosed-by ="#"

--pola-uciekły-by

Poszczególne pola w pliku wyjściowym ignorują podane znaki. Używa się z opcją --tab, a nie dla --baz danych i --wszystkich baz danych

mysqldump -uroot -p mysql user --tab="/home/mysql" --fields-escaped-by="#"

--flush-log

Odśwież logi przed rozpoczęciem eksportu.

Prosimy pamiętać: jeśli wyeksportujesz wiele baz danych jednocześnie (korzystając z opcji --databases lub --all-databases), logi będą odświeżane w zależności od bazy danych. Z wyjątkiem użycia --lock-all-tables lub --master-data. W takim przypadku log zostanie odświeżony raz, a odpowiadająca mu tabela zostanie zablokowana w tym samym czasie. Dlatego jeśli zamierzasz jednocześnie eksportować i wyczyszczać logi, powinieneś użyć --lock-all-tables lub --master-data i --flush-logs.

mysqldump -uroot -p --all-databases --flush-logs

--przywileje flush

Po wyeksportowaniu bazy mysql wydaj polecenie FLUSH PRIVILEGES. Dla prawidłowego odzyskiwania tej opcji należy używać do eksportu bazy MySQL i zależnych danych MySQL w dowolnym momencie.

mysqldump -uroot -p --all-databases --flush-privileges

--siła

Ignoruj błędy SQL pojawiające się podczas eksportu.

mysqldump -uroot -p --all-databases --force

--Pomoc

Wyświetl informacje o pomocy i wyjdź.

mysqldump --pomoc

--heks-blob

Eksportuj binarne pola ciągów znaków za pomocą formatu hexowego. Ta opcja musi być użyta, jeśli dostępne są dane binarne. Dotknięte typy pól to BINARY, VARBINARY i BLOB.

mysqldump -uroot -p --all-databases --hex-blob

--prowadzący, -h

Informacje o hostach, które trzeba wyeksportować

mysqldump -uroot -p --host=localhost --all-databases

--ignore-table

Określona tabela nie jest eksportowana. Gdy określamy, że wiele tabel jest ignorowanych, trzeba to powtarzać wielokrotnie, po jednej tabeli naraz. Każda tabela musi określać zarówno bazę danych, jak i nazwę tabeli. Na przykład: --ignore-table=database.table1 --ignore-table=database.table2 ......

mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

--include-master-host-port

'CHANGE MASTER NA..' wygenerowane przez --dump-slave Dodaj do <host>zdania 'MASTER_HOST=,MASTER_PORT<port>='  

mysqldump -uroot -p --host=localhost --all-databases -include-master-host-port

--insert-ignore

Użyj instrukcji INSERT IGNORE podczas wstawiania linii.

mysqldump -uroot -p --host=localhost --all-databases --insert-ignore

--linie-zakończone-przez-

Każda linia pliku wyjściowego jest podzielona przez dany ciąg znaków. Używam z opcją --tab, a nie dla --baz danych i --all-databases.

Mysqldump -uroot -p --host=localhost test test --tab="/tmp/mysql" --lines-terminated-by="##"

--zablokuj wszystkie stoły, -x

Złóż żądanie zablokowania wszystkich tabel we wszystkich bazach danych, aby zapewnić spójność danych. Jest to globalna blokada odczytu, a opcje --pojedynczej transakcji i --tabel blokad są automatycznie wyłączone.

mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables

--stoły na klucz, -l

Zablokuj wszystkie stoły przed rozpoczęciem eksportu. Zablokuj tabelę za pomocą READ LOCAL, aby umożliwić równoległe wstawianie tabel MyISAM. W tabelach obsługujących transakcje, takich jak InnoDB i BDB,--pojedyncza transakcja jest lepszą opcją, ponieważ w ogóle nie wymaga blokowania tabel.

Należy zauważyć, że podczas eksportu wielu baz danych,-- tabele blokujące blokują tabele dla każdej bazy osobno. Dlatego ta opcja nie gwarantuje logicznej spójności między bazami danych dla tabel w pliku eksportowanym. Status eksportu różnych tabel bazy danych może być całkowicie różny.

mysqldump -uroot -p --host=localhost --all-databases --lock-tables

--log-error

Dołącz ostrzeżenia i komunikaty błędów do danego pliku

mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err

--master-data

Ta opcja dodaje lokalizację i nazwę pliku binlogu do pliku wyjściowego. Jeśli jest 1, zostanie wygenerowane polecenie CHANGE MASTER; Jeśli jest to 2, dodaj komentarz przed wyjściem polecenia CHANGE MASTER. Opcja włączy opcję --lock-all-tables, chyba że określono również --pojedynczą transakcję (w takim przypadku globalna blokada odczytu ma krótki czas na rozpoczęcie eksportu; W przypadku innych treści prosimy o zapoznanie się z opcją --pojedyncza transakcja poniżej). Ta opcja jest automatycznie wyłączona --lock-tables.

mysqldump -uroot -p --host=localhost --all-databases --master-data=1;

mysqldump -uroot -p --host=localhost --all-databases --master-data=2;

--max_allowed_packet

Maksymalna długość pakietu wysłanego i zaakceptowanego przez serwer.

mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

--net_buffer_length

Rozmiar pamięci podręcznej dla połączeń TCP/IP i gniazd.

mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024

--no-autocommit

Użyj instrukcji autocommit/commit, aby oplatać tabelę.

mysqldump -uroot -p --host=localhost --all-databases --no-autocommit

--no-create-db, -n

Eksportuj tylko dane bez dodawania instrukcji CREATE DATABASE.

mysqldump -uroot -p --host=localhost --all-databases --no-create-db

--no-create-info, -t

Eksportuj tylko dane bez dodawania instrukcji CREATE TABLE.

mysqldump -uroot -p --host=localhost --all-databases --no-create-info

--no-data, -d

Nie eksportuje się żadnych danych, tylko struktura tabeli bazy danych.

mysqldump -uroot -p --host=localhost --all-databases --no-data

--bez nazw ustalonych na stałe, -N

Równoważne do --skip-set-charset

mysqldump -uroot -p --host=localhost --all-databases --no-set-names"

--opt

Odpowiednik --dodaj-upuści-tabelę, --dodaj-blokady, --tworzyć-opcje, --szybko, --rozszerzone-wstawienie, --tabele blokady, --set-znaki, --wyłączy-klucze Ta opcja jest domyślnie włączona i można ją wyłączyć za pomocą --pomij-opt.

mysqldump -uroot -p --host=localhost --all-databases --opt

--kolejność-po-podstawowej

Jeśli istnieje klucz główny lub pierwszy unikalny, posortuj rekordy dla każdej tabeli. To działa przy eksporcie tabel MyISAM do tabel InnoDB, ale proces eksportu zajmuje dużo czasu.

mysqldump -uroot -p --host=localhost --all-databases --order-by-primary

--hasło, -p

Podłącz hasło do bazy danych

--rura (dostępna do okien)

Połącz się z mysql za pomocą nazwanego potoku

mysqldump -uroot -p --host=localhost --all-databases --pipe

--lewo, -P

Połącz się z numerem portu bazy danych

--protokół

Stosowane protokoły połączenia, w tym: tcp, gniazdo, rura, pamięć.

mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp

--szybko, -q

Eksportuj bezpośrednio do standardowego wyjścia bez buforowania zapytań. Domyślnie jest włączone, użyj --skip-quick, aby anulować tę opcję.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quick

--cytuj-imiona,-Q

Użyj (') do wywoływania nazw tabel i kolumn. Domyślnie jest włączone, użyj --skip-quote-name, aby anulować tę opcję.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names

--zamień

Użyj REPLACE IN, aby zastąpić INSERT INTO.

mysqldump -uroot -p --host=localhost --all-databases --replace

--result-file, -r

Wyjście bezpośrednio do określonego pliku. Ta opcja powinna być stosowana na systemach korzystających z wrapów nowych linii (np. DOS, Windows). Ta opcja zapewnia, że używana jest tylko jedna linia.

mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

--rutyny, -R

Eksportuj procedury przechowywane oraz funkcje niestandardowe.

mysqldump -uroot -p --host=localhost --all-databases --routines

--set-charset

Dodaj 'SET NAMES default_character_set' do pliku wyjściowego. Domyślnie w stanie otwartym, użyj --skip-set-charset, aby zamknąć opcję.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset

--pojedyncza transakcja

Ta opcja wysyła polecenie BEGIN SQL przed eksportem danych, co nie blokuje żadnej aplikacji i gwarantuje spójny stan bazy danych w momencie eksportu. Działa tylko z silnikami pamięci wielowersyjnej, tylko z InnoDB. Ta opcja i opcja --lock-tables są wzajemnie wykluczające się, ponieważ LOCK TABLES sprawia, że każda oczekująca transakcja jest domyślnie zatwierdzona. Jeśli chcesz wyeksportować dużą tabelę, powinieneś użyć opcji --quick w kombinacji.

mysqldump -uroot -p --host=localhost --all-databases --single-transaction

--data wyrzucenia

Dodaj czas eksportu do pliku wyjściowego. Domyślnie w stanie otwartym, użyj opcji --skip-dump-date, aby zamknąć.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date

--skip-opt

Wyłącz opcję –opt.

mysqldump -uroot -p --host=localhost --all-databases --skip-opt

--gniazdo,-S

Określ lokalizację pliku socket łączącego się z mysql, a domyślna ścieżka to /tmp/mysql.sock

mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

--tabulator,-T

Utwórz plik tekstowy podzielony tabulatorami dla każdej tabeli w danej ścieżce. Uwaga: Tylko dla serwerów mysqldump i mysqld działających na tym samym komputerze.

mysqldump -uroot -p --host=localhost test test --tab="/home/mysql"

--tabele

Nadpisz parametr --databases (-B), aby określić nazwę tabeli do eksportu.

mysqldump -uroot -p --host=localhost --databases test --tables test

--wyzwalacze

Eksportuj wyzwalacze. Ta opcja jest domyślnie włączona, wyłącz ją za pomocą --skip-triggers.

mysqldump -uroot -p --host=localhost --all-databases --triggers

--tz-utc

Ustaw strefę czasową TIME_ZONE='+00:00' na górze eksportu, aby zapewnić poprawność danych TIMESTAMP eksportowanych w różnych strefach czasowych lub podczas przenoszenia danych do innej strefy czasowej.

mysqldump -uroot -p --host=localhost --all-databases --tz-utc

--użytkownik, -u

Określ nazwę użytkownika połączenia.

--rozwlekły, --v

Generuj informacje o wielu platformach.

--version, -V

Wyjście informacji o wersji mysqldump i wyjście

--gdzie, -w

Zrzutowane są tylko rekordy wybrane dla danego stanu WHERE. Należy zauważyć, że jeśli warunek zawiera specyficzną dla interpretera lub znak poleceń, koniecznie odwołuj się do tego warunku.

mysqldump -uroot -p --host=localhost --all-databases --where=" user='root'"

--xml, -X

Eksportuj format XML.

mysqldump -uroot -p --host=localhost --all-databases --xml

--plugin_dir

Katalog wtyczek po stronie klienta zapewniających kompatybilność z różnymi wersjami wtyczek.

mysqldump -uroot -p --host=localhost --all-databases --plugin_dir="/usr/local/lib/plugin"

--default_auth

Wtyczki klienckie domyślnie używają uprawnień.

mysqldump -uroot -p --host=localhost --all-databases --default-auth="/usr/local/lib/plugin/<PLUGIN>"





Poprzedni:Nie mogę uzyskać wartości Json w tabeli bootstrap
Następny:Przekonwertowanie wyników zapytań do udostępniania skryptów w formacie Json
Opublikowano 01.06.2019 02:16:47 |
Dzięki za podzielenie się
 Ziemianin| Opublikowano 07.02.2021 10:01:20 |
MySQL eksportuje wyniki zapytań do pliku
https://www.itsvse.com/thread-9557-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com