Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 18434|Atsakyti: 2

[Šaltinis] MySQL naudoja mysqldump duomenims eksportuoti su sąlygomis

[Kopijuoti nuorodą]
Paskelbta 2019-04-26 16:07:23 | | | |

MySQL duomenų bazės atsarginė kopija ir eksportas
https://www.itsvse.com/thread-4004-1-1.html
(Šaltinis: Architect_Programmer)
mysqldump importo ir eksporto duomenų bazės suvestinės
https://www.itsvse.com/thread-4353-1-1.html
(Šaltinis: Architect_Programmer)
mysqldump eksportuoja duomenų bazę "prieiga uždrausta"
https://www.itsvse.com/thread-4005-1-1.html
(Šaltinis: Architect_Programmer)

Kaip parodyta aukščiau esančioje nuorodoje, visos duomenų bazės turinys yra eksportuojamas, ar jis gali būti eksportuojamas su sąlygomis? Žinoma, galite!


Komanda:

Parametrų analizė:

  • -h: Nurodykite duomenų bazės adresą
  • --port: Nurodykite duomenų bazės prievadą, jei tai yra numatytasis prievadas 3306, jo galima praleisti
  • -u: sąskaitos numeris
  • -p: slaptažodis
  • db_name: Tai reiškia, kurią duomenų bazę eksportuoti
  • tab_name: nurodoma, kurią lentelę eksportuoti
  • --where: Duomenų filtro kriterijai
  • --no-create-info: eksportuoja tik duomenis nepridedant sakinio CREATE TABLE.


Pabaigoje eikite keliu į vietą, į kurią reikia eksportuoti saugyklą.

Iliustruoti:

-t: Tik vadovo duomenys

--čia: sąlyga

--triggers=false: Nenukreipkite trigerių

--replace: Pakeiskite INSERT INTO į į REPLACE INTO



Parametrai:

--visos-duomenų bazės, -A

Eksportuoti visas duomenų bazes.

mysqldump -uroot -p --all-databases

--all-tablespaces , -Y

Eksportuoti visas lentelių vietas.

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

--no-tablespaces , -y

Lentelės vietos informacija neeksportuojama.

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

--add-drop-duomenų bazė

Prieš kuriant kiekvieną duomenų bazę, įtraukite išmetimo duomenų bazės sakinį.

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

--add-drop-table

Prieš kuriant kiekvieną duomenų lentelę, įtraukite išskleidžiamos lentelės sakinį. (Numatytasis yra atidarytas, naudokite --skip-add-drop-table, kad atšauktumėte parinktį)

mysqldump -uroot -p --all-databases (pagal numatytuosius nustatymus pridėkite išmetimo sakinį)

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

--add-locks

Pridėkite LOCK TABLES prieš kiekvieną lentelės eksportavimą ir UNLOCK TABLE po to. (numatytasis yra įjungtas, naudokite --skip-add-locks atšaukti parinktį)

mysqldump -uroot -p --all-databases (LOCK sakinys pridedamas pagal numatytuosius nustatymus)

mysqldump -uroot -p --all-databases -skip-add-locks (atrakinimo pareiškimas)

--leisti-raktiniai žodžiai

Leidžia kurti stulpelių pavadinimus, kurie yra raktiniai žodžiai. Tai daroma prieš kiekvieno stulpelio pavadinimą nurodant lentelės pavadinimą.

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

--taikyti-vergų-teiginiai

Pridėkite "STOP SLAVE" prieš "CHANGE MASTER" ir "START SLAVE" eksporto pabaigoje.

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

--simbolių-rinkiniai-dir

Simbolių rinkinio failų katalogas

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

--komentarai

Papildoma informacija apie pastabas. Jis įjungtas pagal numatytuosius nustatymus ir gali būti atšauktas naudojant --skip-comments

mysqldump -uroot -p --all-databases (numatytieji įrašų komentarai)

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

--suderinamas

Eksportuoti duomenys bus suderinami su kitomis duomenų bazėmis arba senesnėmis MySQL versijomis. Reikšmės gali būti ANSI, MySQL323, MySQL40, PostgreSQL, Oracle, MSSQL, DB2, MaxDB, no_key_options, no_tables_options, no_field_options ir kt.,

Jei norite naudoti kelias reikšmes, išdėstykite jas kableliais. Negarantuojama, kad jis bus visiškai suderinamas, bet kiek įmanoma.

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

--kompaktiškas

Eksportuokite mažiau išvesties informacijos (derinimui). Pašalinkite tokias struktūras kaip komentarai ir galvos bei uodegos. Galima parinktis: --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys

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

--užbaigti-įterpti, -c

Naudokite visą įterpimo sakinį (įskaitant stulpelio pavadinimą). Tai gali pagerinti įterpimo efektyvumą, tačiau tam įtakos gali turėti max_allowed_packet parametrai ir sukelti įterpimo klaidas.

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

--suspausti, -C

Įgalinkite glaudinimą, kad visa informacija būtų perduota tarp kliento ir serverio

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

--kurti-parinktis, -a

Įtraukite visas MySQL funkcijos parinktis į sakinį CREATE TABLE. (Numatytoji reikšmė įjungta)

mysqldump -uroot -p --all-databases

--duomenų bazės, -B

Eksportuoti kelias duomenų bazes. Visi pavadinimo parametrai po parametro laikomi duomenų bazių pavadinimais.

mysqldump -uroot -p --databases test mysql

--derinti

Išvesties derinimo informaciją derinimui. Numatytoji reikšmė yra: d:t:o,/tmp/mysqldump.trace

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

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

--derinimas-patikrinimas

Patikrinkite atmintį ir atidarykite failo instrukcijas ir išeikite.

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

--derinimo-informacija

Išvesties derinimo informacija ir išeiti

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

--default-character-set

Nustatykite numatytąjį simbolių rinkinį, numatytoji reikšmė yra utf8

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

--uždelstas-įterpti

INSERT DELAY duomenims eksportuoti

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

--ištrinti-pagrindinius-žurnalus

Pagrindinė atsarginė kopija ištrina žurnalus. Šis parametras automatiškai suaktyvins --master-data.

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

--išjungti-klavišus

Kiekvienai lentelei naudokite /*!40000 KEISTI LENTELĘ tbl_name IŠJUNGTI KLAVIŠUS */; ir /*!40000 KEISTI LENTELĘ tbl_name ĮJUNGTI KLAVIŠUS */; Teiginys nurodo sakinį INSERT. Tai leidžia greičiau importuoti išmestus failus, nes įterpus visas eilutes sukuriamas indeksas. Ši parinktis galima tik MyISAM lentelėse, kurios numatytoji būsena yra atidaryta.

mysqldump -uroot -p --all-databases

--sąvartynas-vergas

Ši parinktis sukels pagrindinę binlog vietą ir failo pavadinimą prie failo, iš kurio pridedami eksportuoti duomenys. Nustačius 1, komanda CHANGE MASTER bus naudojama išvesti į duomenų failą. Kai nustatyta 2, prieš komandą pridėkite aiškinamąją informaciją. Ši parinktis įjungs --lock-all-tables, nebent nurodyta --single-transaction. Ši parinktis automatiškai išjungia parinktį --lock-tables. Numatytoji reikšmė yra 0.

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

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

--įvykiai, -E

Eksportuokite įvykius.

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

--išplėstas-įdėklas, -e

Naudokite sintaksę INSERT su keliais stulpeliais VALUES. Dėl to failų eksportavimas tampa mažesnis ir pagreitinamas importavimas. Numatytoji atidarymo būsena, naudokite parinktį --skip-extended-insert, kad atšauktumėte.

mysqldump -uroot -p --all-databases

mysqldump -uroot -p --all-databases--skip-extended-insert (atšaukti)

--laukai-baigėsi

Nepaisyti nurodytų eksporto failo laukų. Naudojamas su parinktimi --tab, o ne su parinktimis --databases ir --all-databases

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

--laukai-uždari-by

Atskiri išvesties failo laukai apvyniojami nurodytais simboliais. Naudojamas su parinktimi --tab, o ne su parinktimis --databases ir --all-databases

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

--laukai-pasirinktinai-uždari-by

Išvesties failo laukai pasirinktinai apvyniojami nurodytais simboliais. Naudojamas su parinktimi --tab, o ne su parinktimis --databases ir --all-databases

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

--laukai-pabėgo-by

Atskiri išvesties failo laukai nepaiso nurodytų simbolių. Naudojamas su parinktimi --tab, o ne su parinktimis --databases ir --all-databases

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

--praplovimo rąstai

Prieš pradėdami eksportuoti, atnaujinkite žurnalus.

Atkreipkite dėmesį: jei eksportuosite kelias duomenų bazes vienu metu (naudodami parinktį --databases arba --all-databases), žurnalai bus atnaujinami kiekvienoje duomenų bazėje. Išskyrus naudojant --lock-all-tables arba --master-data. Tokiu atveju žurnalas bus atnaujintas vieną kartą ir atitinkama lentelė bus užrakinta tuo pačiu metu. Todėl, jei ketinate eksportuoti ir išvalyti žurnalus tuo pačiu metu, turėtumėte naudoti --lock-all-tables arba --master-data ir --flush-logs.

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

--flush-privilegijos

Eksportavę mysql duomenų bazę, išleiskite FLUSH PRIVILEGES pareiškimą. Norint tinkamai atkurti, ši parinktis turėtų būti naudojama eksportuojant MySQL duomenų bazę ir priklausomus MySQL duomenų bazės duomenis bet kuriuo metu.

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

--jėga

Nepaisyti SQL klaidų, atsirandančių eksportuojant.

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

--pagalba

Rodyti pagalbos informaciją ir išeiti.

mysqldump --pagalba

--šešiakampis-blob

Eksportuoti dvejetainius eilutės laukus naudojant šešiakampį formatą. Ši parinktis turi būti naudojama, jei yra dvejetainių duomenų. Paveikti laukų tipai yra BINARY, VARBINARY ir BLOB.

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

--šeimininkas, -h

Pagrindinio kompiuterio informacija, kurią reikia eksportuoti

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

--ignoruoti-lentelė

Nurodyta lentelė neeksportuojama. Nurodant, kad nepaisoma kelių lentelių, tai reikia pakartoti kelis kartus, po vieną lentelę. Kiekvienoje lentelėje turi būti nurodyta duomenų bazė ir lentelės pavadinimas. Pavyzdžiui: --ignore-table=database.table1 --ignore-table=database.table2 ......

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

--include-master-host-port

'KEISTI PAGRINDINĮ Į..' sugeneravo --dump-slave <host>Prie išrašo pridėkite "MASTER_HOST=,MASTER_PORT<port>="  

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

--įterpti-ignoruoti

Įterpdami eilutę naudokite sakinį INSERT IGNORY.

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

--eilutės-baigėsi-by

Kiekviena išvesties failo eilutė yra padalinta iš nurodytos eilutės. Naudojamas su parinktimi --tab, o ne su parinktimis --databases ir --all-databases.

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

--užrakinti-visus-stalus, -x

Pateikite užklausą užrakinti visas lenteles visose duomenų bazėse, kad būtų užtikrintas duomenų nuoseklumas. Tai yra visuotinis skaitymo užraktas, o parinktys --single-transaction ir --lock-tables automatiškai išjungiamos.

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

--spynos stalai, -l

Prieš pradėdami eksportuoti, užrakinkite visas lenteles. Užrakinkite lentelę naudodami READ LOCAL, kad MyISAM lenteles būtų galima įterpti lygiagrečiai. Lentelėms, palaikančioms operacijas, pvz., InnoDB ir BDB,--viena operacija yra geresnis pasirinkimas, nes visai nereikia užrakinti lentelių.

Atkreipkite dėmesį, kad eksportuojant kelias duomenų bazes,-- užrakinimo lentelės užrakina kiekvienos duomenų bazės lenteles atskirai. Todėl ši parinktis negarantuoja loginio eksportuoto failo lentelių duomenų bazių nuoseklumo. Skirtingų duomenų bazių lentelių eksporto būsena gali būti visiškai skirtinga.

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

--log-klaida

Pridėti įspėjimus ir klaidų pranešimus prie nurodyto failo

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

--pagrindiniai-duomenys

Ši parinktis prie išvesties failo prideda binlog vietą ir failo pavadinimą. Jei jis yra 1, bus išvesta komanda CHANGE MASTER; Jei jis yra 2, pridėkite komentarą prieš išvesdami komandą CHANGE MASTER. Ši parinktis įjungs parinktį --lock-all-tables, nebent taip pat nurodyta --single- operacija (šiuo atveju visuotinis skaitymo užraktas gauna trumpą laiką, kai prasideda eksportavimas; Kitą turinį rasite žemiau esančioje parinktyje --one-transaction). Ši parinktis automatiškai išjungiama --lock-tables parinktis.

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

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

--max_allowed_packet

Maksimalus serverio siunčiamas ir priimtas paketo ilgis.

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

--net_buffer_length

TCP/IP ir lizdų jungčių talpyklos dydis.

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

--no-autocommit

Norėdami apvynioti lentelę, naudokite sakinį autocommit/commit.

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

--no-create-db, -n

Eksportuokite duomenis tik neįtraukdami sakinio CREATE DATABASE.

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

--no-create-info, -t

Eksportuokite duomenis tik neįtraukdami sakinio CREATE TABLE.

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

--nėra-duomenų, -d

Jokie duomenys neeksportuojami, eksportuojama tik duomenų bazės lentelės struktūra.

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

--no-set-names, -N

Atitinka --skip-set-charset

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

--opt

Atitinka --add-drop-table, --add-locks, --create- options, --quick, --extended-insert, --lock-tables, --set- charset, --disable-keys Ši parinktis įjungta pagal numatytuosius nustatymus ir gali būti išjungta naudojant --skip-opt.

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

--tvarka-pagal-pirminį

Jei yra pirminis raktas arba pirmasis unikalus raktas, rūšiuokite kiekvienos lentelės įrašus. Tai veikia eksportuojant MyISAM lenteles į InnoDB lenteles, tačiau eksporto procesas užtrunka ilgai.

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

--slaptažodis, -p

Duomenų bazės slaptažodžio prijungimas

--vamzdis (galima langams)

Prisijunkite prie mysql naudodami pavadintą vamzdyną

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

--uostas, -P

Prisijungti prie duomenų bazės prievado numerio

--protokolas

Naudojami ryšio protokolai, įskaitant: tcp, lizdas, vamzdis, atmintis.

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

--greitas, -q

Eksportuokite tiesiai į standartinę išvestį be buferinių užklausų. Numatytoji reikšmė įjungta, naudokite --skip-quick, kad atšauktumėte šią parinktį.

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

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

--citatos-vardai,-Q

Naudokite (') lentelių ir stulpelių pavadinimams sukelti. Numatytoji reikšmė įjungta, naudokite --skip-quote-names, kad atšauktumėte šią parinktį.

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

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

--pakeisti

Naudokite REPLACE IN, kad pakeistumėte INSERT INTO.

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

--rezultato-failas, -r

Išvestis tiesiai į nurodytą failą. Ši parinktis turėtų būti naudojama sistemose, kuriose naudojami naujos eilutės apvyniojimai (pvz., DOS, Windows). Ši parinktis užtikrina, kad būtų naudojama tik viena eilutė.

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

--rutinos, -R

Eksportuokite saugomas procedūras ir pasirinktines funkcijas.

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

--set-charset

Pridėkite "SET NAMES default_character_set" prie išvesties failo. Numatytoji atidarymo būsena, naudokite --skip-set-charset, kad uždarytumėte parinktį.

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

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

--vienkartinė operacija

Ši parinktis prieš eksportuojant duomenis pateikia SQL sakinį BEGIN, kuris neblokuoja jokios programos ir garantuoja nuoseklią duomenų bazės būseną eksportavimo metu. Jis veikia tik su kelių versijų saugojimo varikliais, tik InnoDB. Ši parinktis ir parinktis --lock-tables yra tarpusavyje nesuderinamos, nes LOCK TABLES netiesiogiai įpareigoja bet kokią laukiančią operaciją. Jei norite eksportuoti didelę lentelę, turėtumėte naudoti parinktį --quick kartu.

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

--dump-data

Pridėkite eksportavimo laiką į išvesties failą. Numatytoji atidarymo būsena, naudokite parinktį --skip-dump-date uždaryti.

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

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

--praleisti-opt

Išjunkite parinktį –opt.

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

--lizdas,-S

Nurodykite lizdo failo vietą, kuri jungiasi prie mysql, o numatytasis kelias yra /tmp/mysql.sock

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

--tab,-T

Sukurkite kiekvienos lentelės tam tikrame kelyje teksto failą. Pastaba: Tik mysqldump ir mysqld serveriams, veikiantiems tame pačiame kompiuteryje.

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

--stalai

Perrašykite parametrą --databases (-B), kad nurodytumėte eksportuojamos lentelės pavadinimą.

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

--trigeriai

Eksporto paleidikliai. Ši parinktis įjungta pagal numatytuosius nustatymus, išjunkite ją naudodami --skip-triggers.

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

--tz-utc

Eksporto viršuje nustatykite laiko juostą TIME_ZONE='+00:00', kad užtikrintumėte skirtingose laiko juostose eksportuotų TIMESTAMP duomenų teisingumą arba kai duomenys perkeliami į kitą laiko juostą.

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

--vartotojas, -u

Nurodykite ryšio vartotojo vardą.

--verbose, --v

Išvesti kelių platformų informaciją.

--versija, -V

Išveskite mysqldump versijos informaciją ir išeikite

--kur, -w

Iškeliami tik įrašai, pasirinkti nurodytai sąlygai WHERE. Atkreipkite dėmesį, kad jei sąlygoje yra komandų interpretatoriaus tarpas arba simbolis, būtinai nurodykite sąlygą.

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

--xml, -X

Eksportuoti XML formatą.

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

--plugin_dir

Kliento pusės įskiepių katalogas, suderinamas su skirtingomis įskiepių versijomis.

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

--default_auth

Kliento papildiniai naudoja leidimus pagal numatytuosius nustatymus.

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





Ankstesnis:Aš negaliu gauti vertės Json bootstrap lentelėje
Kitą:Konvertuoti užklausos rezultatus į Json formato scenarijaus bendrinimą
Paskelbta 2019-06-01 02:16:47 |
Ačiū už pasidalinimą
 Savininkas| Paskelbta 2021-02-07 10:01:20 |
MySQL eksportuoja užklausos rezultatus į failą
https://www.itsvse.com/thread-9557-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com