Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Manuali i referencës MySQL. Deponia e bazës së të dhënave - blogu i koduesit

Manuali i referencës MySQL. Deponia e bazës së të dhënave - blogu i koduesit

Ky artikull mund të jetë i dobishëm nëse keni një faqe interneti që përdor një sistem të menaxhimit të përmbajtjes (Joomla, WordPress, OpenCart, etj.) dhe ju vendosni zhvendoseni atë në një server tjetër. Kjo kërkon jo vetëm transferimin e skedarëve të faqes, por edhe transferimin. Përpara se të filloni të transferoni një faqe interneti, duhet të zgjidhni një të mirë dhe ta porosisni atë në mënyrë që të keni akses në një llogari të re pritjeje. Ne, për shembull, ofrojmë të pavarur, Joomla dhe PrestaShop. Nëse dëshironi të transferoni faqen tuaj në një emër të ri dhe keni nevojë, merrni kohën tuaj. Plani ynë i përbashkët i pritjes S4 do t'ju ofrojë gjithashtu një domen falas. Nëse faqja juaj nuk ka pritje të mjaftueshme virtuale, gjithmonë mund të porosisni VPS ose .

Për të transferuar një bazë të dhënash, së pari duhet të krijoni një hale, domethënë të vendosni përmbajtjen në një skedar të veçantë sql. Kjo bëhet në meny. phpMyAdmin në hostin nga ku po transferoni sitin. Shkoni te phpMyAdmin, zgjidhni bazën e të dhënave që dëshironi të transferoni në të majtë dhe klikoni në " Eksporti» në menunë e sipërme.

Do të hapet një kuti dialogu, në të cilën sigurohuni që të zgjidhni llojin e bazës së të dhënave SQL, pastaj klikoni butonin Ne rregull. Prisni që skedari i bazës së të dhënave të shkarkohet në kompjuterin tuaj.

Tani ky skedar duhet të vendoset saktë në hostin tonë. Për ta bërë këtë, së pari duhet të krijoni një bazë të dhënash MySQL në llogarinë cPanel, të shtoni një përdorues në të dhe t'i caktoni privilegje. Më poshtë është rendi se si të krijoni një bazë të dhënash në MySQL.

Shkoni te cPanel dhe gjeni seksionin " Baza e të dhënave", zgjidhni "".

Do të hapet një dritare e re. Në hapin 1, vendosni një emër të bazës së të dhënave. Ju lutemi vini re se emri i bazës së të dhënave do të jetë gjithmonë prefiks, gjysma e parë e emrit do të përmbajë emrin e llogarisë cPanel.

Pasi të keni futur emrin, klikoni në " Hapi tjeter».

Në hapin 2, duhet të krijoni një përdorues MySQL për bazën e të dhënave dhe të vendosni një fjalëkalim për të. Pasi të keni futur të gjitha të dhënat, klikoni " Krijo përdorues».

Kur vendosni privilegjet e përdoruesit të krijuar, zgjidhni opsionin " TE GJITHA TE DREJTAT” dhe shkoni në hapin tjetër.

Nëse gjithçka është bërë si duhet në hapat e mëparshëm, magjistari i bazës së të dhënave do t'ju njoftojë për përfundimin me sukses të krijimit të një baze të dhënash në host.

Tani mund ta gjeni bazën e të dhënave të krijuar në listën e bazave të të dhënave të disponueshme MySQL në menunë e panelit të kontrollit me të njëjtin emër.

Tani, për të rivendosur bazën e të dhënave MySQL, ne importojmë në bazën e të dhënave të krijuar përmbajtjen e skedarit të ruajtur nga hosti i vjetër me shtesën .sql. Për ta bërë këtë, në faqen kryesore të cPanel, zgjidhni artikullin e menysë " phpMyAdmin"në të njëjtin seksion" Baza e të dhënave". Në dritaren që hapet, në menynë në të majtë, zgjidhni bazën e të dhënave të krijuar rishtazi dhe klikoni në skedën " Importi» në menunë e sipërme.

Klikoni butonin zgjidhni një skedar”, në kutinë e dialogut, zgjidhni skedarin sql të ruajtur më parë dhe ngarkoni atë në host. Sigurohuni që lloji i kodimit të jetë utf-8. Pasi të klikoni OK, prisni për një mesazh që importimi i bazës së të dhënave ishte i suksesshëm.

Mbi këtë, të gjitha hapat e nevojshëm për të transferuar bazën e të dhënave në një tjetër janë përfunduar.

Ideja e artikullit është krijimi i një manuali cilësor për instalimin dhe punën me programin mysqldump. Aplikimi, shumë shembuj dhe mbledhja e të gjitha opsioneve dhe parametrave të dobishëm për të punuar me këtë mjet. Çdo gjë në një artikull është e vështirë për t'u përshtatur, kështu që gjithçka do të jetë e shkurtër dhe e saktë. Nëse dikush keqkupton diçka, ne i drejtohemi komenteve në artikull.

Seksionet:

Instalimimysqldump:

Çfarë është mysqldump?

MySQLdumpështë një aplikacion serveri që ju lejon të kopjoni (në tekstin e mëtejmë referuar si hale) bazat e të dhënave dhe t'i ruani ato në një skedar të veçantë. Në të njëjtën kohë, mund të zbatoni cilësime fleksibël të depozitimit: disa ose të gjitha bazat e të dhënave, arkivimi i gzip, shtimi i bllokimit, komandat e lëshimit dhe shumë më tepër. Importimi i kundërt i kopjeve rezervë të bazës së të dhënave është gjithashtu i mundur. Mund të bëhet duke përdorur PHP, por kjo është e papranueshme për projekte të mëdha që kanë një peshë të madhe të dhënash.

Ky program është shumë i dobishëm në zbatimin e eksportit dhe importimit të të dhënave nga baza e të dhënave. Mund të instalohet standard në hostin tuaj (më saktë serverin mysql). Por për të përmirësuar aftësitë tuaja me mysqldump dhe për të mësuar se si ta instaloni, mund ta vendosni në denwer. Çfarë do të bëjmë tani.

Shkarko mysqldump

Ju gjithmonë mund ta shkarkoni programin mysqldump nga faqja jonë e internetit, ndërsa shkarkimi i aplikacionit është plotësisht falas. Shkarkoni mysqldump nga lidhja direkte më poshtë.

Si të instaloni mysqldump?

Ne do të instalojmë në serverin lokal Denwer. Instalimi i aplikacionit është i lehtë dhe i thjeshtë, për këtë, ndiqni udhëzimet dhe pamjet e ekranit të dhëna më poshtë.

1.Kopjo skedarin mysqldump.exe në dosjen Denver:

D:\WebServers\usr\local\mysql5\bin\
Në këtë rast, mund të keni një emër paksa të ndryshëm për dosjen mysql5, për shembull mysql-5.1 ose një pak të modifikuar. Prandaj, për qartësi më të madhe, një pamje e ekranit është dhënë më poshtë:

2. Nisni Denverin

Me siguri ju vetë e dini se si të filloni Denwer.


3. Nisni konsolën:

Start->Run->cmd.exe ose në Windows 7: Start->Search->Entercmd.exe->Hyni siç tregohet në pamjen e ekranit:

4. Testimi:

Me ndihmën e komandave në tastierë, shkojmë në diskun virtual të Denverit (kam W:\) dhe në dosjen me aplikacionin mysqldump. Për të konfirmuar ekzekutimin e komandës, shtypni Enter.

Ne futim komandat:

W:- shkoni te disku virtual i Denverit

cdusr\lokal\mysql5\kosh- shkoni te dosja me aplikacionin

mysqldump -uroot yourdbname>filename.sql- ne testojmë, hedhim një bazë të dhënash arbitrare në një skedar që do të ruhet në dosjen bin.

Instalimi im ishte i suksesshëm, shpresoj që edhe ju të jeni. Në dosjen bin gjejmë skedarin rezervë të bazës së të dhënave. Për të mësuar se si ta përdorni programin më gjerësisht, lexoni seksionet e mëposhtme të artikullit.

Fillimi: Eksportimi dhe importimi i një baze të dhënash

Eksportimi i bazës së të dhënave

Ne kemi instaluar tashmë aplikacionin dhe kemi mësuar se si të përdorim konsolën. Ne kemi bërë tashmë një deponi testimi. Tani do të bëjmë një hale të thjeshtë të bazës së të dhënave në drejtorinë që na nevojitet. Për ta bërë këtë, unë krijova bazën e të dhënave të përdorur më parë të quajtur "test". Ndodhet në serverin lokal denwer. Më poshtë janë komandat hap pas hapi të konsolës për hedhjen e bazës së të dhënave të testimit në dosjen dhe skedarin e dëshiruar.

W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql

Pamja e ekranit më poshtë tregon skedarin e hale në dosjen e provës:

Eksporti përfundoi me sukses. Tani le të përpiqemi ta importojmë këtë skedar përsëri në serverin tonë.

Importi i bazës së të dhënave

Për të importuar bazën e të dhënave, pastroni bazën e të dhënave në phpmyadmin dhe përdorni komandën e mëposhtme në cmd.exe:

testi mysql -uroot

Shënim i rëndësishëm: nëse gjatë eksportit kemi përdorur mysqldump..., atëherë kur importoni, duhet të filloni komandën me mysql. Ky shembull është përdorimi bazë i aplikacionit mysqldump për të krijuar kopje rezervë të bazës së të dhënave. Do të gjeni edhe më shumë komanda dhe shembuj në seksionin dhe artikullin.

Shembuj hale MySQL

Shembujt më të përdorur të përdorimit të mysqldump janë dhënë më poshtë. Me të cilin jo vetëm që mund të bëni një kopje rezervë, por edhe të shtoni disa opsione rezervë: kompresim me gzip, shtimin e një date rezervë, hedhjen e vetëm disa tabelave ose strukturave të bazës së të dhënave, duke përdorur cilësime fleksibël. Këto opsione ju lejojnë të shpejtoni hedhjen dhe të kurseni hapësirën në disk.

Krijimi i një hale

mysqldump –uUSER -h82.82.82.82 -pBAZA E TË DHËNAVE PASSWORD > /path/to/file/dump.sql

-u ose --përdoruesi=...- Emri i përdoruesit

-h ose --host=...- host në distancë (për host lokal, mund ta hiqni këtë parametër)

-fq ose --fjalëkalim- kërkoni një fjalëkalim

bazën e të dhënave- emri i bazës së të dhënave të eksportuara

/path/to/file/dump.sql- rruga dhe skedari për hale

Ne hedhim disa baza të dhënash, për këtë përdorim atributin --database ose shkurt -B, shikoni shembullin më poshtë:

mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

Nëse dëshironi të hiqni të gjitha bazat e të dhënave, duhet të përdorni opsionin --all-databases ose -A stenografi, shikoni shembullin:

mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql

Krijoni një strukturë bazë të dhënash pa të dhëna

Për ta bërë këtë, duhet të përdorni opsionin --no-data siç tregohet në shembullin më poshtë:

mysqldump --no-data -uUSER -pPASSWORD BAZA E TË DHËNAVE > /path/to/file/schema.sql

Ne krijojmë një grumbull të vetëm një ose disa tabelave të bazës së të dhënave

mysqldump -uUSER -pPASSWORD BAZA E TË DHËNAVE TABELA1 TABELA2 TABELA 3 > dump.sql

Krijoni një hale dhe arkivoni atëgzip

mysqldump -u BAZA E TË DHËNAVE TË PËRDORËSVE -pPASSWORD | gzip > /path/to/outputfile.sql.gz

Krijo një hale me datën në emrin e skedarit

mysqldump -uUSER -p BAZA E TË DHËNAVE PASSWORD | gzip > `data +dump.sql.%Y%m%d.%H%M%S.gz`

Përdorimi i atributeve shtesë

mysqldump -Q -c -e -uUSER -pPASSWORD BAZA E TË DHËNAVE > /path/to/file/dump.sql

Siç u përmend më herët, këto atribute zvogëlojnë madhësinë e skedarit që rezulton dhe shpejtojnë procesin e rezervimit. Më saktë:

-P mbështillni emrat me thonjëza të pasme

-c bën një insert të plotë, duke përfshirë emrat e kolonave

-e bën një insert të zgjeruar.

Ky postim përmban komandat më të përdorura për krijimin ose vendosjen e kopjeve rezervë të bazave të të dhënave MySQL.

Epo, thjesht jam lodhur nga çelësat e Google vazhdimisht kur më duhen "papritmas".

Pak teori..

MySQLDUMP është një mjet që ju lejon të kopjoni bazat e të dhënave MySQL. Në fund, marrim një skedar .sql me një bazë të dhënash hale. Ky skedar përmban kodin Sql në formë teksti, d.m.th. mund të hapet gjithmonë me një redaktues teksti për të parë, modifikuar, etj...
Ju mund të rivendosni një hale të tillë duke përdorur programin mysql nëpërmjet STDIN.

Nga rruga, ekziston edhe një mjet i tillë si MySqlHotCopy, i cili përdoret më së miri për të krijuar kopje rezervë të nxehtë, pasi bllokon bazën e të dhënave dhe kopjon skedarët e bazës së të dhënave në vendin e duhur. Por kjo gjë do të funksionojë vetëm nëse ekzekutohet në vetë serverin, funksionon vetëm me tabelat MyISAM dhe Archive dhe është më e përshtatshme për baza të të dhënave të mëdha.
Ju mund t'i rivendosni të dhënat duke kopjuar skedarët e ruajtur në drejtorinë e të dhënave MySQL.

Por, në përgjithësi, nuk bëhet fjalë për të ... mbase do të shkruaj për "kopjen e nxehtë" në një artikull tjetër ...

Krijoni një kopje rezervë të bazës së të dhënave

Le të fillojmë me komandën më të zakonshme për të hedhur faqen site.ru në skedarin site.ru:

mysqldump -uroot -h10.30.30.10 -p site_ru > site_ru.sql

    Më shumë rreth çelësave:
  • -u(—user=…) është emri i përdoruesit të bazës së të dhënave;
  • -h(--host=...) është hosti ku ndodhet vetë serveri. Nëse serveri është lokal, atëherë ose nuk mund ta përdorni këtë parametër ose të specifikoni localhost atje. Gjithashtu mbani në mend se ip-ja e serverit pas çelësit duhet të shkruhet pa hapësirë;
  • -fq(--password=...) është fjalëkalimi i përdoruesit. Nëse ky çelës nuk përdoret, atëherë lidhja me bazën e të dhënave do të jetë e mundur nëse nuk ka fjalëkalim. Gjithashtu, askush nuk e ndalon futjen e një fjalëkalimi në komandë dhe nuk duhet të ketë një hapësirë ​​​​pas çelësit (për shembull: -p1234567890, ku 1234567890 është fjalëkalimi);
  • site_ru ky është emri i bazës së të dhënave në serverin MySql;
  • site_ru.sql ky është skedari hale.

Për të bërë një kopje rezervë të disa bazave të të dhënave, mund të përdorni çelësin -B dhe specifikoni disa baza të dhënash, këtu është një shembull:

mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql

Nëse situata nuk jep kohë për të menduar, dhe ju duhet të rezervoni të gjitha bazat e të dhënave, atëherë në këtë situatë mund të përdorni çelësin -- të gjitha bazat e të dhënave, këtu është një shembull:

mysqldump -uroot -h10.30.30.10 -p -A > all-db.sql

Nga rruga, ka një nuancë.

Nëse bëni kopje rezervë të bazës së të dhënave në një server që funksionon, dhe për më tepër, i përdorur në mënyrë aktive, atëherë rrezikoni të merrni lidhje logjike të prishura. Ka disa mënyra për të shmangur këtë.

Mënyra e parë është mbyllja e tavolinave, d.m.th. ju mund të përdorni opsionin --lock-tables, këtu është një shembull:

mysqldump -uroot -h10.30.30.10 -p --lock-tabels site_ru > site_ru.sql

Por në momentin e krijimit të një kopje rezervë, kërkesat e klientit do të pezullohen .. dhe për këtë arsye mund të ketë afate.

Mënyra e dytë është të përdorni tastin --flush-log kur krijoni një kopje rezervë. Ky çelës do të mbyllë regjistrin e vjetër të aktiviteteve dhe do të krijojë një të ri. Nëse dikush shkruan diçka në procesin e krijimit të një kopjeje, kjo do të pasqyrohet në fillim të regjistrit dhe do të jetë e mundur të transferohet ky ndryshim në bazën e të dhënave. Më tej, për t'u siguruar, pasi të keni përfunduar rezervimin, duhet të ekzekutoni komandën mysqladmin -flush-logs dhe të lini një kopje të regjistrit binar të parafundit.

Rivendosja e një kopje rezervë të bazës së të dhënave

Shërbimi "mysql" tashmë do të sundojë këtu. Këtu është një shembull:

Mysql -uroot -h10.30.30.10 -p site_ru< site_ru.sql

Një mënyrë tjetër, më pedant:

Mysql -uroot -p Futni fjalëkalimin: Mirë se vini në monitorin MySQL. Komandat mbarojnë me ; ose\g. ID-ja juaj e lidhjes MySQL është versioni 35 i serverit: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) E drejta e autorit (c) 2000, 2016, Oracle dhe/ose filialet e saj. Të gjitha të drejtat e rezervuara. Oracle është një markë tregtare e regjistruar e Oracle Corporation dhe/ose filialeve të saj. Emrat e tjerë mund të jenë marka tregtare të pronarëve të tyre përkatës. Shkruani "ndihmë;" ose "\h" për ndihmë. Shkruani "\c" për të pastruar deklaratën aktuale të hyrjes. mysql> përdorni site_ru; mysql> burim site_ru.sql;

Epo, nëse databaza juaj ruhet në një arkiv gz, atëherë mund të kombinoni komandat mysql dhe zcat si kjo:

Zcat site_en.sql.gz | mysql -uroot -h10.30.30.10 -p site_ru

Më shumë përdorime për mysqldump

Për shembull, ne kemi nevojë për një bazë të dhënash për zonën dev, një sandbox, si të thuash, dhe madhësia e bazës së të dhënave kryesore është shumë e madhe. Ju mund të përdorni çelësin - ku = "kufiri i vërtetë 150", për të cilin ne do të specifikojmë në mënyrë eksplicite një mostër të dhënash me jo më shumë se 150 regjistrime. Këtu është një shembull:

mysqldump -uroot -h10.30.30.10 -p --where="kufiri i vërtetë 150" site_ru > site_ru.sql

Nëse na duhet vetëm një strukturë pa të dhëna, atëherë mund të përdorim çelësin --no-data, këtu është një shembull

mysqldump -uroot -h10.30.30.10 -p --no-data site_ru > site_ru.sql

Nëse na duhet një kopje e vetëm një tabele, atëherë këtu është një komandë shembull:

mysqldump -u root -p testdb emri i tabelës > testdb_table_backup.sql

Nëse kemi nevojë për një kopje të nxitësve, procedurave dhe ngjarjeve (planifikues i integruar), atëherë këtu është një shembull:

Mysqldump --no-create-info --no-data --triggers --rutinat --events -uroot -p site_ru | gzip > ~/database.sql.gz

Ju gjithashtu mund të krijoni menjëherë një depon të bazës së të dhënave të arkivuar. Ju mund ta bëni këtë si kjo:

mysqldump -uroot -p site_ru | gzip > /path/to/site_ru.sql.gz

Dhe gjithashtu mund të specifikoni datën e krijimit të arkivit, si kjo:

mysqldump -uroot -p site_ru | gzip > `data +/path/to/site_ru.sql.%Y%m%d.%H%M%S.gz`

Çelësat për përdorimin e mysqldump

Më poshtë janë çelësat më të njohur mysqldump:

Zgjero listën...

  • --add-drop-database Shton një deklaratë DROP DATABASE para çdo deklarate CREATE DATABASE.
  • --add-drop-table Shton një deklaratë DROP TABLE përpara çdo deklarate CREATE TABLE.
  • --add-locks Shton një deklaratë LOCK TABLES përpara ekzekutimit dhe një deklaratë UNLOCK TABLE pas çdo depozitimi të tabelës (për të shpejtuar aksesin në MySQL).
  • --all-databases, -A Ruan të gjitha tabelat nga të gjitha bazat e të dhënave që menaxhohen nga serveri aktual.
  • --allow-words - Lejo krijimin e emrave të kolonave që përputhen me fjalë kyçe. Mungesa e konflikteve sigurohet duke shtuar emrin e tabelës si parashtesë për çdo emër kolone.
  • --comments, -i - Ky opsion ju lejon të shtoni informacion shtesë në hale, si versioni mysqldump, versioni MySQL, emri i hostit ku ndodhet serveri MySQL.
  • --compact Ky opsion i thotë mysqldump të hedhë duke përdorur formatin më kompakt të mundshëm. Parametri është i kundërt i --comments.
  • --compatible=name - Ky opsion gjeneron dalje që është në përputhje me RDBMS të tjera ose versione më të vjetra të MySQL. Në vend të fjalës kyçe të emrit, mund të përdorni: "ansi", "mysql323", "mysql40", "postgresql", "oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "jo_opsione_fushe" . Ju mund të përdorni vlera të shumta duke i ndarë ato me presje.
  • --complete-insert, -c Përdori formën e plotë të deklaratës INSERT (me emrat e kolonave).
  • --create-options Shton informacion shtesë për deklaratat CREATE TABLE. Ky mund të jetë lloji i tabelës, vlera fillestare AUTO_INCREMENT dhe opsione të tjera.
  • --bazat e të dhënave, -B - Parametri ju lejon të specifikoni emrat e disa bazave të të dhënave për të cilat dëshironi të krijoni një hale.
  • --e vonuar Përdorni komandën INSERT DELAYED kur futni rreshta.
  • --delete-master-logs Në serverin kryesor të replikimit, regjistrat binare (logbin) fshihen automatikisht pasi një hale është krijuar me sukses me mysqldump. Ky opsion përfshin automatikisht opsionin "--master-data".
  • --çaktivizoj-çelësat, -K Për çdo tabelë, rrethoni deklaratën INSERT me /*!40000 ALTER TABLE tbl_emri DISABLE KEYS */; dhe /*!40000 ALTER TABLE tbl_name KEYSAT AKTIVIZUES */; në daljen e rezultatit të hale. Kjo do të përshpejtojë ngarkimin e të dhënave në server për tabelat e tipit MyISAM, pasi indekset krijohen pasi të jenë futur të gjitha të dhënat.
  • --extended-insert, -e Përdor komandën INSERT me sintaksën e re me shumë rreshta (përmirëson kompaktësinë dhe performancën e deklaratave hyrëse).
  • --Flush-logs, -F Shpëlaj të dhënat e regjistrit të sistemit nga buferi i serverit MySQL në disk përpara se të filloni deponimin.
  • --force, -f Vazhdo edhe nëse ndodh një gabim gjatë krijimit të deponisë.
  • --hex-blob - Parametri ju lejon të përfaqësoni të dhënat binare në fushat e tipit BINARY, VARBINARY, BLOB dhe BIT në format hexadecimal. Pra, sekuenca "abc" do të zëvendësohet me 0x616263.
  • --ignore-table=db_name.tbl_name - Lejon që tabela e bazës së të dhënave db_name tbl_name të injorohet gjatë hedhjes. Nëse disa tabela duhet të përjashtohen nga hale, duhet të përdoren opsione të shumta --ignore-tabela, duke specifikuar një tabelë për secilin opsion.
  • --insert-ignore Shton fjalën kyçe IGNORE në deklaratën INSERT.
  • --lock-all-tables, -x Përcaktimi i këtij opsioni bën që të gjitha tabelat në të gjitha bazat e të dhënave të kyçen për kohëzgjatjen e depozitimit të plotë të të gjitha bazave të të dhënave.
  • --lock-tables, -l Specifikimi i këtij opsioni bllokon tabelat e bazës së të dhënave që po hidhen.
  • --no-autocommit - Përfshin të gjitha deklaratat INSERT që lidhen me të njëjtën tabelë në një transaksion, gjë që rezulton në një rritje të shpejtësisë së ngarkimit të të dhënave.
  • --no-create-db, -n Ndalon hedhjen e deklaratave CREATE BASE TË TË DHËNAVE që shtohen automatikisht kur përdoren opsionet --database dhe --all-databases.
  • --no-data, -d Shtyp gjenerimin e deklaratave INSERT në hale, të cilat mund të jenë të dobishme kur hidhet një strukturë bazë të dhënash pa vetë të dhënat.
  • --opt - Parametri është projektuar për të optimizuar shpejtësinë e rezervimit të të dhënave dhe është një shkurtim që përfshin opsionet e mëposhtme: --i shpejtë --add-drop-table --add-locks --create-options --çaktivizoj-çelësat --extended-insert --lock-tabels --set-charset . Duke filluar me MySQL 4.1, opsioni --opt përdoret si parazgjedhje, d.m.th. të gjitha opsionet e mësipërme janë aktivizuar si parazgjedhje, edhe nëse nuk janë të specifikuara. Për të përjashtuar këtë sjellje, duhet të përdorni parametrat --skip-opt
  • --order-by-primary - Specifikimi i një parametri rezulton në atë. se çdo tabelë është renditur sipas çelësit primar ose indeksit të parë unik.
  • --port, -P - numri i portës TCP që përdoret për t'u lidhur me hostin.
  • --protocol=(TCP|SOCKET|PIPE|MEMORY) — Parametri ju lejon të vendosni protokollin për t'u lidhur me serverin.
  • --quick, -q - Ju lejon të filloni hedhjen pa pritur që të dhënat të shkarkohen plotësisht nga serveri, duke kursyer kështu kujtesën.
  • --quote-names, -Q Emrat e bazës së të dhënave të citateve, tabelave dhe kolonave në backticks `. Duke filluar me MySQL 4.1, ky opsion aktivizohet si parazgjedhje.
  • --replace Shton fjalën kyçe REPLACE në deklaratën INSERT. Ky opsion u shfaq për herë të parë në MySQL 5.1.3.
  • --result-file=/path/to/file, -r /path/to/file - Opsioni e drejton deponimin te skedari i skedarit. Ky opsion është veçanërisht i dobishëm në Windows pa përdorur vijën e komandës. kur mund ta ridrejtoni rezultatin në një skedar duke përdorur sekuencat > dhe >>.
  • --rutinat, -R - Ky opsion krijon një grumbull të procedurave dhe funksioneve të ruajtura. Në dispozicion që nga MySQL 5.1.2.
  • --single-transaction - Opsioni krijon një hale si një transaksion i vetëm.
  • --skip-comments - Ky opsion ju lejon të ndaloni hedhjen e informacionit shtesë.
  • --socket=/path/to/socket, -S /path/to/socket - Skedari i folesë për t'u lidhur me localhost.
  • --tab=/path/, -T /path/ - Kur përdoret ky opsion, krijohen dy skedarë të veçantë në direktorinë e shtigjeve për secilën tabelë: tbl_name.sql që përmban deklaratën CREATE TABLE dhe tbl_name.txt që përmban tab-delimited të dhënat e tabelës. Formati i të dhënave mund të anashkalohet në mënyrë eksplicite me opsionet --fields-xxx dhe --lines-xxx.
  • --tabela - Anulon opsionin --database (-B). Të gjithë argumentet pas këtij opsioni trajtohen si emra tabelash.
  • --shkakton Deponon shkas. Ky cilësim është aktivizuar si parazgjedhje. për ta çaktivizuar, përdorni opsionin --skip-triggers.
  • --ngjarje, -E Dump ngjarjet. Shikoni Programuesin e ngjarjeve të MySQL ose programuesin e integruar të ngjarjeve të MySQL.
  • --tz-utc - kur përdoret ky parametër, një operator i formës SET TIME_ZONE='+00:00' do të shtohet në hale, i cili do të lejojë shkëmbimin e deponive në zona të ndryshme kohore.
  • --verbose, -v Mënyra e daljes së zgjeruar. Shfaqja e informacionit më të detajuar rreth programit.
  • --version, -V Shfaq informacione rreth versionit të programit.
  • --where='where-condition', -w 'where-condition' Hidh vetëm të dhënat e zgjedhura. Vini re se kuotat janë të nevojshme.
  • --xml, -X Paraqet depozitimin e bazës së të dhënave si XML.
  • --first-slave, -x Kyç të gjitha tabelat në të gjitha bazat e të dhënave.
  • --debug=…, -# - Gjurmo ecurinë e programit (për korrigjim).
  • --ndihmë Shfaqni informacionin e ndihmës dhe dilni nga programi.

Hedhja dhe rivendosja e një baze të dhënash MySQL është mjaft e lehtë dhe e përshtatshme për t'u bërë nga distanca përmes SSH ose drejtpërdrejt përmes tastierës së serverit. Nga distanca, kjo mund të bëhet duke përdorur programet Putty/Kitty. Ju gjithashtu mund të ekzekutoni shembujt e mëposhtëm në Windows duke ekzekutuar vijën e komandës ' cmd'. Më poshtë janë shembuj se si të krijoni deponime të bazës së të dhënave MySQL dhe më pas t'i rivendosni ato nëse është e nevojshme, për shembull për faqen tuaj të internetit, dyqanin online ose ndonjë projekt tjetër.

Hedhja e një baze të të dhënave MySQL

Për të ekzekutuar këto komanda, lidheni nga distanca me serverin tuaj nëpërmjet SSH duke përdorur një nga programet e listuara më sipër. Pas lidhjes dhe autorizimit me serverin/hostin, mund të futni komandat më poshtë.

# Rezervoni një bazë të dhënash për skedarin dump_file.sql mysqldump -uroot -p your_base > dump_file.sql # Në Windows, është më mirë të krijoni një hale me një komandë paksa të ndryshme, e cila parandalon # mbishkrimin aksidental të linjave dump për shkak të konvertimit të karaktereve të linjës së re "\r\n" në "\n" mysqldump -uroot -p your_base -r dump_file_utf8.sql # Nëse keni nevojë të kopjoni vetëm tabela individuale, jo të gjithë bazën e të dhënave # (specifikoni emrat e tabelave me një hapësirë ​​pas emrit të bazës së të dhënave) mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql # Nëse keni nevojë të kopjoni vetëm strukturën e bazës së të dhënave pa vetë të dhënat mysqldump -uroot -p --no-data your_base > dump_file.sql # Rezervoni të gjitha bazat e të dhënave në current_date.gz mysqldump -uroot -p --të gjitha_bazat e të dhënave | gzip -c > "data "+%Y-%m-%d"".gz # Rezervimi, ku krijohet një INSERT i veçantë për çdo rekord # dhe duke specifikuar në mënyrë eksplicite bazën e të dhënave UTF-8 që kodon mysqldump -uroot -p --default - character-set=utf8 your_base --extended-insert=FALSE | gzip -c > "data "+%Y-%m-%d"".gz

# Rezervoni një bazë të dhënash në dump_file.sql

mysqldump - uroot - p your_base > dump_file . sql

# Në dritare, hedhja bëhet më së miri me një komandë paksa të ndryshme që parandalon

# mbishkrim i rastësishëm i linjave të grumbulluara për shkak të konvertimit të karaktereve të linjës së re "\r\n" në "\n"

mysqldump - uroot - p your_base - r dump_file_utf8 . sql

# Nëse duhet të kopjoni vetëm tabela individuale, jo të gjithë bazën e të dhënave

# (specifikoni emrat e tabelave me një hapësirë ​​pas emrit të bazës së të dhënave)

mysqldump - uroot - p your_base TABLE1 TABLE2 TABLE3 > dump_file . sql

# Nëse keni nevojë të krijoni një kopje rezervë vetëm të strukturës së bazës së të dhënave pa vetë të dhënat

mysqldump - uroot - p -- no - data your_base > dump_file . sql

# Rezervoni të gjitha bazat e të dhënave në skedarin aktual_date.gz

mysqldump - uroot - p -- të gjitha_bazat e të dhënave | gzip - c > "data "+%Y-%m-%d"" . gz

# Rezervimi, ku krijohet një INSERT i veçantë për çdo hyrje

# dhe duke specifikuar në mënyrë eksplicite kodimin e bazës së të dhënave UTF-8

mysqldump - uroot - p -- default - karakter - set = utf8 your_base -- extensioned - insert = FALSE | gzip - c > "data "+%Y-%m-%d"" . gz

Në shembullin e mësipërm, programi përdoret për të krijuar një kopje rezervë. mysqldump, e cila është përfshirë me mysql. Më poshtë janë parametrat për krijimin e një kopje rezervë të bazës së të dhënave, të cilat do t'i analizojmë më në detaje:

  • -u– Parametri specifikon hyrjen që do të përdoret për t'u lidhur me bazën e të dhënave. Në shembull, ne përdorim hyrjen rrënjë, e cila duhet të specifikohet në këtë parametër pa një hapësirë! Si rezultat, duket si -uroot
  • -fq– Parametri tregon që ju duhet të vendosni një fjalëkalim për hyrjen e specifikuar. E lamë bosh, si rezultat i së cilës fjalëkalimi do të duhet të futet pasi të shtypni "Enter" gjatë ekzekutimit të komandës. Sidoqoftë, mund të specifikoni fjalëkalimin menjëherë këtu, si në parametrin e hyrjes, pa hapësirë ​​pas -p, megjithatë kjo metodë nuk është e sigurt, pasi tastiera ruan komandat tuaja në skedarin e regjistrit dhe nëse nuk e pastroni rregullisht, atëherë mund të shihet nga një sulmues.
  • bazën tuaj- në vend të kësaj rreshti në shembull, duhet të specifikoni emrin e vërtetë të bazës së të dhënave për të cilën po krijoni një kopje rezervë.
  • > – një operator që tregon drejtimin e veprimit, d.m.th. sikur të tregonte se do të shkruani nga baza e të dhënave në skedar.
  • dump_file.sqlështë emri i skedarit tuaj .slq ku dëshironi të ruani bazën e të dhënave. Përcaktohet me një hapësirë ​​pas operatorit ">". Mund të vendosni çdo emër tjetër. Për shembull, në mënyrë që sistemi të fusë automatikisht kohën aktuale në emër, mjafton të specifikoni një rresht si:

    "data "+%Y-%m-%d""

    "data "+%Y-%m-%d""


    pas kësaj rreshti në shembull, zgjerimi i skedarit ' .gz'. Si rezultat, një skedar i formularit ' 2014-11-15.gz‘.

    Kujdes! Nëse specifikoni vetëm emrin e skedarit, atëherë ai do të ruhet në të njëjtin direktorium kundrejt të cilit e ekzekutoni këtë komandë. ato. nëse shihni diçka të tillë # , ku [email i mbrojtur] është emri i hyrjes dhe serverit, atëherë skedari do të krijohet në drejtori /shtëpi. Për të ndryshuar ruajtjen e skedarit në një shteg tjetër, specifikoni shtegun e plotë për të ruajtur skedarin në vend të emrit, për shembull: /var/www/backup/dump_file.sql.

  • Në shembullin e dytë, në vend të ' > "operatori është përdorur" | ', e cila tregon nevojën për të ekzekutuar një komandë shtesë gzip me parametrin ' -c' që ju lejon të paketoni menjëherë deponinë në një arkiv dhe vetëm atëherë ta ruani atë në një skedar si ' 2014-11-15.gz'siç raportohet nga operatori' > ‘.
  • Parametri --nuk ka të dhëna ju lejon të hidhni vetëm strukturën e bazës së të dhënave pa vetë të dhënat. Mjaft e dobishme në disa raste kur të dhënat nuk nevojiten.
  • Parametrat --default-character-set=utf8 Dhe --extended-insert=FALSE. E para ju lejon të specifikoni në mënyrë eksplicite kodimin e përdorur nga kjo bazë të dhënash, duke shmangur kështu ruajtjen e bazës së të dhënave në kodimin e gabuar. Në vend të utf8, mund të specifikoni çdo kodim tjetër, si p.sh. cp1251. Parametri i dytë ju lejon të specifikoni që një komandë e veçantë INSERT duhet të krijohet për çdo rekord gjatë eksportit. Në disa raste, kjo mund të kërkohet kur të rikthehen pjesërisht të dhënat nga një hale.
  • Rivendosja e një baze të dhënash nga një skedar hale MySQL

    Tani le të hedhim një vështrim në procesin e kundërt të rivendosjes së një baze të dhënash nga një skedar hale. Ky veprim kryhet duke përdorur programin mysql. Le të shohim një shembull menjëherë.

Artikujt kryesorë të lidhur