Mysql prügikastist, et täita ainult üks tabel. Teeme andmebaasist dump (varukoopia), kasutades utiliiti mysqldump. Andmebaasi struktuuri loomine ilma andmeteta

See postitus sisaldab loomiseks või juurutamiseks kõige sagedamini kasutatavaid käske varukoopiad alused MySQL-i andmed.

Noh, ma olen lihtsalt väsinud pidevast võtmete guugeldamisest, kui mul neid "äkki" vaja läheb.

Natuke teooriat...

MySQLDUMP on tööriist, mis võimaldab luua MySQL-i andmebaasidest varukoopiaid. Selle tulemusena saame .sql-faili koos andmebaasi dumpiga. See fail sisaldab SQL kood teksti kujul, s.o. saate selle alati tekstiredaktoriga avada, et vaadata, redigeerida jne...
Sellise tõmmise saate taastada STDIN-i kaudu mysql-i utiliidi abil.

Muide, on olemas ka utiliit nimega MySqlHotCopy, mida on kõige parem kasutada kuumade varukoopiate tegemiseks, kuna see lukustab andmebaasi ja kopeerib andmebaasifailid soovitud asukohta. Kuid see asi töötab ainult siis, kui see on käivitatud serveris endas, see töötab ainult MyISAM ja Archive tabelitega ning sobib rohkem suurte andmebaaside jaoks.
Saate andmeid taastada, kopeerides salvestatud failid MySQL-i andmekataloogi.

Kuid üldiselt pole see tema kohta ... võib-olla kirjutan "kuuma koopia" kohta mõnes teises artiklis ...

Andmebaasi varukoopia loomine

Alustame kõige tavalisema käsuga saidi site.ru faili site.ru dumpeerimiseks:

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

    Lisateavet võtmete kohta:
  • -u(--user=...) on andmebaasi kasutajanimi;
  • -h(—host=…) on host, millel server ise asub. Kui server on kohalik, siis ei saa seda parameetrit kasutada või saate sinna sisestada localhost. Samuti pidage meeles, et serveri ip pärast võtit tuleb kirjutada ilma tühikuta;
  • -lk(--password=...) on kasutaja parool. Kui seda võtit ei kasutata, on andmebaasiga ühenduse loomine võimalik parooli puudumisel. Samuti ei keela keegi käsusse parooli sisestamist ning klahvi järel ei tohiks olla tühikut (näiteks: -p1234567890, kus 1234567890 on parool);
  • site_ru see on MySql serveri andmebaasi nimi;
  • site_ru.sql see on tühjendusfail.

Mitme andmebaasi varukoopia tegemiseks võite kasutada võtit -B ja määrake mitu andmebaasi, siin on näide:

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

Kui olukord ei anna teile mõtlemisaega ja peate tegema kõigist andmebaasidest varukoopia, saate selles olukorras kasutada võtit --kõik-andmebaasid, siin on näide:

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

Muide, seal on nüanss.

Kui teete andmebaasi varukoopia töötavas ja pealegi aktiivselt kasutatavas serveris, on oht loogiliste ühenduste katkestamiseks. Selle vältimiseks on paar võimalust.

Esimene võimalus on lauad lukustada, st. võite kasutada parameetrit --lock-tables, siin on näide:

Mysqldump -uroot -h10.30.30.10 -p --lock-tables site_ru > site_ru.sql

Kuid varukoopia loomise ajal peatatakse klientide taotlused... ja seetõttu võib esineda aegumistähtajaid.

Teine võimalus on kasutada varukoopia loomisel lülitit --flush-log. See võti sulgub vana palk toiminguid ja loob uue. Kui keegi koopia tegemise käigus midagi üles kirjutab, siis see kajastub logi alguses ja selle muudatuse on võimalik andmebaasi üle kanda. Järgmiseks, et olla kindel, peate pärast varundamise lõpetamist käivitama käsu mysqladmin -flush-logs ja jätma koopia eelviimasest kahendlogist.

Andmebaasi varukoopia taastamine

Siin valitseb juba utiliit "mysql". Siin on näide:

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

Teine viis, pedantsem:

Mysql -uroot -p Sisestage parool: Tere tulemast MySQL-i monitori. Käsud lõpevad ; või\g. Teie MySQL-i ühenduse ID on 35 Serveri versioon: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) Autoriõigus (c) 2000, 2016, Oracle ja/või selle sidusettevõtted. Kõik õigused kaitstud. Oracle on Oracle Corporationi ja/või selle sidusettevõtete registreeritud kaubamärk. Teised nimed võivad olla nende vastavate omanike kaubamärgid. Sisestage "help;" või "\h" abi saamiseks. Praeguse sisendlause kustutamiseks tippige "\c". mysql > use site_ru; mysql> lähtesait_ru.sql;

Noh, kui teie andmebaas on salvestatud gz arhiivi, saate kombineerida mysql käsud ja zcat niimoodi:

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

Rohkem võimalusi mysqldumpi kasutamiseks

Näiteks vajame andmebaasi dev tsoonis, nii-öelda liivakasti ja põhiandmebaasi suurus on väga suur. Võite kasutada klahvi -where="true limit 150", millele me täpsustame selgelt kuni 150 kirjest koosneva andmenäidise. Siin on näide:

Mysqldump -uroot -h10.30.30.10 -p --where="tõeline limiit 150" site_ru > site_ru.sql

Kui vajame ainult andmeteta struktuuri, siis saame kasutada lülitit --no-data, siin on näide

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

Kui vajame ainult ühe tabeli koopiat, siis siin on näidiskäsk:

Mysqldump -u root -p testdb tabelinimi > testdb_table_backup.sql

Kui vajame käivitajate, protseduuride ja sündmuste koopiat (sisseehitatud ajakava), siis siin on näide:

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

Samuti saate kohe luua arhiveeritud andmebaasi dump. Saate seda teha järgmiselt:

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

Samuti saate määrata arhiivi loomise kuupäeva järgmiselt:

Mysqldump -uroot -p site_ru | gzip > `kuupäev +/tee/site_ru.sql.%Y%m%d.%H%M%S.gz

Võtmed mysqldumpi kasutamiseks

Allpool on kõige populaarsemad mysqldump võtmed:

Laienda loendit...

  • --add-drop-database – lisab enne iga CREATE DATABASE lauset DROP DATABASE.
  • --add-drop-table — lisab enne iga CREATE TABLE lauset DROP TABLE.
  • --add-locks – lisab lause LOCK TABLES enne täitmist ja UNLOCK TABLE avalduse pärast iga tabeli väljavõtte täitmist (MySQL-ile juurdepääsu kiirendamiseks).
  • --all-databases, -A — salvestab kõik tabelid kõigist praeguse serveri hallatavatest andmebaasidest.
  • --allow-keywords – lubab luua märksõnadele vastavaid veergude nimesid. Konfliktide puudumine tagatakse tabeli nime lisamisega iga veeru nimele eesliitena.
  • —comments, -i — see parameeter võimaldab lisada prügikasti Lisainformatsioon, näiteks mysqldump versioon, MySQL versioon, hostinimi, kus MySQL server asub.
  • --compact See suvand paneb mysqldump looma tõmmise, kasutades võimalikult kompaktset vormingut. Parameeter on -commentsi vastand.
  • --yhteensopiva=nimi — parameeter genereerib väljundi, mis ühildub teiste või vanemate DBMS-idega MySQL versioonid. Nimelise märksõna asemel võite kasutada: "ansi", "mysql323", "mysql40", "postgresql", "oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . Võite kasutada mitut väärtust, eraldades need komadega.
  • --complete-insert, -c — kasutage INSERT-lause täielikku vormi (koos veergude nimedega).
  • --create-options – lisab CREATE TABLE lausetele lisateavet. See võib olla tabeli tüüp, esialgne väärtus AUTO_INCREMENT ja muud parameetrid.
  • --databases, -B — parameeter võimaldab määrata mitme andmebaasi nimed, mille jaoks soovite tõmmist luua.
  • --delayed — ridade sisestamisel kasutage käsku INSERT DELAYED.
  • --delete-master-logs – põhireplikatsiooniserver kustutab automaatselt binaarlogid (logbin) pärast seda, kui väljavõte on mysqldumpi abil edukalt loodud. See suvand lubab automaatselt suvandi "--master-data".
  • --disable-keys, -K - Iga tabeli puhul ümbritse INSERT-lause avaldistega /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; ja /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; prügila tulemuse väljundis. See kiirendab andmete laadimist serverisse tabelite (nt MyISAM) jaoks, kuna indeksid luuakse pärast kõigi andmete sisestamist.
  • --extended-insert, -e — kasutage käsku INSERT koos uue käsuga mitmerealine süntaks(suurendab sisendoperaatorite kompaktsust ja jõudlust).
  • --flush-logs, -F — andmete kettale kirjutamine syslog MySQL-i serveri puhvrist enne tõmmise käivitamist.
  • --force, -f — jätkab isegi siis, kui tõmmise loomise protsessis ilmnes tõrge.
  • —hex-blob — parameeter võimaldab esitada kuueteistkümnendvormingus binaarandmeid BINARY, VARBINARY, BLOB ja BIT tüüpi väljadel. Seega asendatakse jada "abc" 0x616263-ga.
  • --ignore-table=db_name.tbl_name — võimaldab andmebaasi db_name tabelit tbl_name ignoreerida tõmmise loomisel. Kui teil on vaja prügist välja jätta mitu tabelit, peate kasutama mitut parameetrit "--ignore-table", määrates igas parameetris ühe tabeli.
  • --insert-ignore — lisab märksõna INSERT-lausesse IGNORE.
  • --lock-all-tables, -x — selle suvandi määramine lukustatakse kõigi andmebaaside tabelid, samal ajal kui luuakse kõigi andmebaaside täielik tõmmis.
  • --lock-tables, -l — selle suvandi määramine lukustab selle andmebaasi tabelid, mille jaoks tõmmist luuakse.
  • --no-autocommit – sisaldab kõiki samas tabelis olevaid INSERT-lauseid ühes tehingus, mille tulemuseks on kiirem andmete laadimine.
  • --no-create-db, -n — pärsib CREATE DATABASE lausete dumpingu, mis lisatakse automaatselt suvandite --databases ja --all-databases kasutamisel.
  • --no-data, -d — takistab INSERT-lausete loomist tõmmises, mis võib olla kasulik andmebaasi struktuuri kustutamisel ilma andmete endita.
  • —opt — parameeter on mõeldud andmete varundamise kiiruse optimeerimiseks ja on otsetee, mis sisaldab järgmisi valikuid: —kiire —lisa-drop-tabel —add-locks —create-suvandid —Keela-võtmed —laiendatud-sisestamine —lukk -tables -set-charset . Alates MySQL 4.1-st on vaikimisi kasutusel --opt, st. Kõik ülaltoodud valikud on vaikimisi lubatud, isegi kui need pole määratud. Selle käitumise välistamiseks peate kasutama parameetrit --skip-opt
  • --order-by-primary – parameetri määramine põhjustab selle. et iga tabel on sorteeritud selle primaarvõtme või esimese kordumatu indeksi järgi.
  • --port, -P — number TCP port, mida kasutatakse hostiga ühenduse loomiseks.
  • —protocol=(TCP|SOCKET|PIPE|MEMORY) — parameeter võimaldab määrata serveriga ühenduse loomise protokolli.
  • —kiire, -q — Võimaldab alustada tõmmise loomist ootamata täislaadung andmeid serverist ja säästa seeläbi mälu.
  • --tsitaatnimed, -Q – paneb andmebaaside, tabelite ja veergude nimed märkeruutudesse `. Alates MySQL 4.1-st on see valik vaikimisi lubatud.
  • --replace – lisab INSERT-lausesse märksõna REPLACE. See valik ilmus esmakordselt MySQL 5.1.3-s.
  • --result-file=/tee/faili/faili, -r /tee/faili – parameeter saadab dump faili faili fail. See suvand on eriti kasulik Windowsis ilma käsurida kasutamata. kui saate tulemuse faili ümber suunata, kasutades järjestusi > ja >>.
  • --rutiinid, -R — see suvand loob salvestatud protseduuride ja funktsioonide tõmmise. Saadaval koos MySQL 5.1.2-ga.
  • --single-transaction – suvand loob ühe tehinguna väljavõtte.
  • —skip-comments — see parameeter võimaldab teil välja jätta lisateabe väljundi.
  • --socket=/tee/pesale, -S /tee/pesale — soklifail kohaliku hostiga ühenduse loomiseks.
  • —tab=/path/, -T /path/ — selle parameetri kasutamisel luuakse iga tabeli jaoks teekataloogis kaks eraldi faili: tbl_name.sql, mis sisaldab käsku CREATE TABLE, ja tbl_name.txt, mis sisaldab tabeldusmärgiga eraldatud tabeliandmed . Andmevormingu saab selgesõnaliselt alistada, kasutades suvandeid --fields-xxx ja --lines-xxx.
  • --tables – alistab parameetri --databases (-B). Kõiki sellele parameetrile järgnevaid argumente käsitletakse tabelinimedena.
  • —triggers — loob päästikute dumpingu. See valik on vaikimisi lubatud. Selle keelamiseks kasutage valikut --skip-triggers.
  • --events, -E — loob sündmuste tõmmise. Vaadake MySQL-i sündmuste ajakava või MySQL-i sisseehitatud sündmuste haldurit.
  • —tz-utc — selle parameetri kasutamisel lisatakse prügimäele operaator nagu SET TIME_ZONE=’+00:00′, mis võimaldab vahetada prügimägesid erinevates ajavööndites.
  • --verbose, -v — Laiendatud väljundrežiim. Järeldus veel detailne info programmi töö kohta.
  • --version, -V — kuvab teavet programmi versiooni kohta.
  • —kus='kus-tingimus', -w 'kus-tingimus' — tühjendage ainult valitud kirjed. Pange tähele, et jutumärgid on kohustuslikud.
  • --xml, -X — esindab andmebaasi tõmmist XML-ina.
  • --first-slave, -x — lukustab kõik tabelid kõigis andmebaasides.
  • —debug=…, -# — jälgib programmi edenemist (silumiseks).
  • --help — Väljund taustainfo ja väljuge programmist.

Tervitused, sõbrad! 🙂

Täna otsustasin jätkata vestlust konsoolis MySQL-iga töötamise kohta ja pöörata tähelepanu MySQL-i andmebaasi eksportimise protseduurile.

Selles artiklis räägin sellest, kuidas MySQL-i andmebaasi kustutada ja andmeid MySQL-ist üles laadida Exceli fail ja csv-vormingus.

Me kaalume erinevaid valikuid teabe proovide võtmine: ühe või mitme andmebaasi tõmmise loomine, andmete eksportimine üksikutest tabelitest ja suvalised tulemused VALI taotlusi.

Räägime ka sellest, kuidas serverikonsoolis ja MySQL-i käsureal olevast MySQL-i andmebaasist andmeid väljastada.

Selles artiklis ma ei räägi sellest, kuidas andmeid eksportida phpMyAdmini abil ja muud visuaalsed vahendid.

Esiteks sellepärast, et Internetis on sellel teemal juba piisavalt materjali. Pealegi on see kvaliteetne materjal, mida ma ei kipu kopeerima-kleebima.

Ja teiseks, olen juba põgusalt üle vaadanud MySQL-i andmebaasist teabe väljastamise protsessi SQL-failühes oma artiklis, kus ta rääkis.

Nii et kui sa ei ole professionaalne arendaja või süsteemiadministraator, kellele võib konsooliga töötamise info kasulikuks osutuda ja sina tulid vaid juhiste saamiseks, kuidas andmebaasi phpMyAdmini eksportida, siis saad piirduda ülaltoodud lingi info lugemisega.

Soovin, et saaksite minust õigesti aru: ma ei taha teid kuidagi solvata, vaid soovin, et veedaksite oma aega oma ettevõttele maksimaalselt kasulikult ja saaksite seda, mida otsisite.

Sellega lõpetame sissejuhatava osa ja liigume edasi konsoolikäskude ülevaatuse juurde MySQL-i andmebaasi dump loomiseks, mida otsustasin sorteerida salvestatavate andmete hulga järgi: alustades kogu andmebaasi eksportimisest, lõpetades üksikute tabelite ja tulemustega. suvalised päringud.

MySQL-i andmebaasi dump loomine konsooli kaudu

Kohe alguses tahaksin teha väikese täpsustuse.

Andmebaasi dump on fail koos SQL-i komplekt käsud, mille käivitamisel saab luua andmebaase ja tabeleid ning täita neid teabega. Dump on vajalik neile, kes soovivad MySQL-i andmebaasi alla laadida, et kopeerida see teise serverisse või olemasolevasse serverisse.

Samuti, kui keegi ei tea, siis MySQL-i andmebaasi varukoopia on sisuliselt sellest teatud ajaperioodil tehtud prügi, mis võimaldab vajadusel taastada andmebaasi struktuuri ja andmeid.

Ekspordi andmed on lihtsalt tabelitest teabe ammutamine tekstivorm Sest edasine töö teksti- või graafiliste redaktorite abil.

Seetõttu on nende toimingute käsud veidi erinevad.

Andmebaasi väljavõtte loomiseks on MySQL-il sisseehitatud utiliit nimega mysqldump, mida tuleb kasutada väljaspool MySQL-i käsurida serverikonsoolis või muus shellis.

Niisiis, kõige lihtsama ja levinuima võimaluse jaoks - andmete eksportimine konkreetsest andmebaasist MySQL konsool Selle ülekandmiseks teise serverisse või sisemisse koopiasse peate käivitama järgmise käsu:

Mysqldump -u kasutajanimi -p andmebaasi_nimi > tee_ja_tõmmise_faili_nimi

See utiliit saab luua MySQL-i andmebaasi dumpe ainult SQL-käskudega failide kujul, nii et olenemata sellest, millise laienduse oma failile valite, on selle sisu igal juhul sama. Ja ärge unustage enne MySQL-ist teabe eksportimist kontrollida selle kataloogi kirjutamisõigusi, kus see asub, et faili saaks luua.

Kui teil on järsku vaja teha tõmmis kõigi serveri andmebaasidega, siis kasutage järgmine variant käsud:

Mysqldump -u kasutajanimi -p --kõik-andmebaasid > tee_ja_tõmmise_faili_nimi

Ainult mõne konkreetse andmebaasi tühjendamiseks peate kutsuma funktsiooni mysqldump järgmiste parameetritega:

Mysqldump -u kasutajanimi -p --andmebaasid andmebaasi_nimi1, andmebaasi_nimi2, ... > tee_ja_väljastusfaili_nimi

Selle tulemusena saate igal juhul MySQL-i andmebaasi dump, mis sisaldab käske sisalduvate tabelite struktuuri loomiseks (väljad, nende tüübid, indeksid, võtmed jne), samuti toiminguid nende andmetega täitmiseks.

See valik sobib ainult tervete andmebaaside taastamiseks ja kopeerimiseks.

Kuidas teha teatud MySQL-i tabelitest varukoopiaid ja vastu võtta nende andmeid loetav vorm, räägime edasi.

MySQL-i tabeli dumping ja andmete eksport

Teatud MySQL-i andmebaasi tabelite tõmmise loomiseks vajame sama utiliiti mysqldump, kutsutakse järgmiste parameetritega:

Mysqldump -u kasutajanimi -p andmebaasi_nimi tabeli_nimi1, tabeli_nimi2, ... > tee_ja_väljavõtte_nimi

Mysqldumpi kutsumisel saab parameetri väärtuseks määrata vajalikud tabelid -- tabelid, kui seda parameetrit kasutatakse --andmebaasid ignoreeritakse:

Mysqldump -u kasutajanimi -p --andmebaasid andmebaasi_nimi1, andmebaasi_nimi2 --tabelid tabeli_nimi1, tabeli_nimi2, ... > tee_ja_väljavõtte_nimi

Ülaltoodud näide kuvab järgmise vea:

Mysqldump: andmebaasi valimisel ilmnes viga: 1049: tundmatu andmebaas "andmebaasi_nimi1"

Nagu näete, kasutatakse ainult loendi uusimat andmebaasi. Põhimõtteliselt on selline käitumine üsna loogiline, sest Määratud tabelid ei pruugi kõigis andmebaasides ilmuda.

Olgu, saime MySQL-i andmebaasi tabelite dumpingu. Seda saab kasutada nende taastamiseks või koos struktuuriga kopeerimiseks.

Aga mis siis, kui teil on vaja lihtsalt nendesse salvestatud teave hankida ja eelistatavalt loetaval kujul, et saaksite selle haldurile saata ja tavalises teksti- või tabeliredaktoris vaadata? MySQL-il on ka selleks tööriistad.

Utiliidile helistamise võimalus aitab meil oma plaane saavutada mysql konsoolist teatud parameetritega:

Mysql -u kasutajanimi -p andmebaasi_nimi -e "SELECT * FROM tabeli_nimi"

See käsk võimaldab meil täita päringu vajalikule andmebaasile ja kuvada tulemuse konsoolis ilma käsurida MySQL.

Noh, selleks, et mitte väljastada andmeid konsooli, vaid kirjutada need faili, peate käsku täiendama järgmiselt:

Mysql -u kasutajanimi -p -e "SELECT * FROM tabelinimi" > tee_ja failinimi

Tänu nendele konstruktsioonidele ei saa me mitte ainult tabeli kõikidele väljadele salvestatud andmeid, vaid ka konkreetseid. Selleks asenda lihtsalt metamärkide (*) sümbol vajalike sümbolitega, eraldades need komadega.

Selle tulemusena on väljundiks tavaline tekstifail, mis sisaldab väljade nimesid päise kujul ja teavet nende kohta kõigi kirjete kohta. Seda saab avada normaalselt tekstiredaktor, olenemata sellest, millise eraldusvõime selle loomisel annate.

Kui soovite eksportida andmeid MySQL-i andmebaasist xls- või csv-vormingus, nii et saadud fail kuvatakse arvutustabeliredaktorites õigesti, siis räägime teile veidi hiljem, kuidas seda teha :)

MySQL-i andmebaasist varukoopiate loomine ja andmete väljastamine päringute abil

Rääkisime nii MySQL-i andmebaasi – ühe või mitme kui ka üksikute tabelite – tühjendamiseks. Kuid mõnikord on praktikas juhtumeid, kui peate eksportima andmestiku, mis ei ole piiratud ühe tabeliga. Või peate tabelist valima ainult mõned andmed.

Eriti sageli puutuvad sellega kokku ettevõtete projektide arendajad, kui juhid paluvad neil esitada kõikvõimalikke statistilisi andmeid. Või kui peate varundama teatud tabeli osa, et see kiiresti taastada.

Varundamiseks vajame sama utiliiti mysqldump, mida tuleb nimetada järgmiselt:

Mysqldump -u kasutajanimi -p andmebaasi_nimi tabeli_nimi --kus "otsing" > tee_ja_tõmmise_faili_nimi

Selle tulemusena saame faili koos SQL-käskudega, et luua tabel kogu selle struktuuriga, mis pärast loomist täidetakse otsingupäringu abil valitud teabega.

Kui meil on vaja ainult ühte või mitmesse tabelisse salvestatud andmed hankida, siis peame kõigi tabelis olevate andmete hankimisel muutma eelmisel juhul kasutatud käsku, kuid ainult mõningate täpsustustega:

Mysql -u kasutajanimi -p -e "SELECT * FROM tabeli_nimi WHERE otsing" > tee_ja_faili_nimi

Nagu aru saate, lisaks erinevatele taotluses täpsustatud selgitustele, kasutades käskkirja KUS, võite kasutada muid SQL konstruktsioonid: LIITU, LIIT jne.

Saate koguda soovitud statistikat :)

Sama toimingut saab teha ka MySQL-i käsureal töötades, kasutades järgmist käsku:

SELECT * FROM andmebaasi_tabelist WHERE otsing INTO OUTFILE "tee_ja_faili_nimi";

See käsk on spetsiaalselt loodud valimitulemustega failide loomiseks. Pealegi saab tulemusi mitte ainult failidesse eksportida, vaid ka muutujatesse kirjutada ning väljundandmeid mitmel viisil vormindada.

Kui ülaltoodu on teie juhtum, leiate täieliku loendi parameetritest ja selle käsu kutsumise võimalustest siit - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Tema lõpus lühike ekskursioon mysqldump jaoks tahaksin anda võimaluse kutsuda käsk parameetrite loendiga, et luua MySQL-i andmebaasi ja tabelite optimeeritud tõmmis, millest andmebaasi ja üksikute tabelite taastamine võtab vähem aega kui tavalise kõne korral:

Mysqldump -u kasutajanimi -h host_või_IP_MySQL_server -p --no-autocommit --opt andmebaasi_nimi > tee_ja_tõmmise_faili_nimi;

Eksperimendi huvides kasutasin see valik 143 MB suuruse MySQL-i andmebaasi tühjendamiseks. Järgnev taastamine võttis aega 59 sekundit, võrreldes 1 minuti ja 3 sekundiga, kui andmebaas taastati väljakutsest, mis tehti kutsudes mysqldump ilma eriparameetriteta.

Olen nõus, et see on väike asi. Kuid see on ainult juhuks antud maht andmeid. Kui kasutate seda tehnikat kui 1 GB mahuga prügimälu luuakse, on erinevus suurem.

Kui teil tekib selline olukord, ärge unustage esmalt arhiivida MySQL-i andmebaasi dump. Parim on tar.gz. Siis võtab taastumine veelgi vähem aega.

Andmete eksportimine MySQL-ist Exceli ja csv-failidesse

Ega asjata ühendasin info MySQL-ist info väljastamise kohta nendesse kahte vormingusse ühte plokki, sest... need on väga sarnased, neid kasutatakse ligikaudu samal viisil (teabe struktureerimiseks tabelite kujul) ja eksportimiseks kutsutakse välja samad käsud.

Nagu teate, on nende vormingute ainus oluline erinevus selles xls laiendus ja xlsx-l on programmis loodud failid Microsoft Office Excel, mis töötab ainult Windowsis, kuid csv-fail s on universaalsemad ja toimingud nendega on võimalikud paljudes toimetajates.

See ei tähenda, et xls on saadaval kõikjal peale Microsofti Office Excel, ei avane. Seesama OpenOffice kinnitab vastupidist.

Aga sellise võimaluse eest seda toetust peab olema tarkvaratootes olemas. csv-failid on loetavad isegi tavalises tekstiredaktoris nagu Notepad, kuid see vorm ei ole täielikult loetav.

Alustan sellest, et ainult tulemusi saab eksportida xls-i või csv-sse SQL päringud, millega õppisime varem töötama, sest kogu andmebaasi ühe toiminguga ühte faili väljastada on võimatu.

Esiteks pole see optimaalne, sest... sellise faili avamine on ebatõenäoline, kui andmebaasis on palju teavet. Ja teiseks pole selge, kuidas failis olevat teavet tabeliteks ja väljadeks jagada.

Ei, seda on loomulikult võimalik teha, kuid tõenäoliselt ei tehta seda ühe käsuga ja üldiselt on ebatõenäoline, et keegi seda konsoolis teeb. Arvan, et nendel eesmärkidel vajate spetsiaalset tarkvara või vähemalt skripti.

Kui tead järsku, kuidas saab kogu MySQL andmebaasist infot eksportida konsoolis ühte või mitmesse xls-faili korraga, siis kirjuta sellest kommentaaridesse. Arvan, et selle kohta lugemine on paljudele kasulik.

Niisiis, kui me räägime sellest, kuidas eksportida andmeid MySQL-ist xls-i ja csv-sse, saab seda teha otse serverikonsoolis utiliidi kaudu. mysql või töös, mida ma teile oma eelmises artiklis tutvustasin.

Alustame järjekorras.

Saate eksportida andmeid MySQL-i andmebaasist csv- ja xls-vormingusse otse serverikonsoolis, kasutades järgmisi käske.

Peal Linux süsteemid:

Mysql -u kasutajanimi -d andmebaasi_nimi -p -e "SELECT * FROM andmebaasi_tabel;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > tee_ja_faili_nimi. csv

Põhimõtteliselt saab selle käsuga äärmise vajaduse korral MySQL-i andmeid Exceli faili eksportida. Aga ausalt öeldes pole ma sellega praktikas tegelenud ja mul pole õrna aimugi, mis lõpuks välja tuleb, sest... Praegu töötan Windowsiga. Kui kasutate seda käsku Linuxi all, kirjutage kommentaaridesse oma töö tulemustest. Arvan, et see teave huvitab kõiki.

Peal Windows:

Ekspordi andmed asukohast MySQL tabelid csv-s ülaltoodud käsuga in sel juhul, kahjuks ei ole see võimalik, sest Erinevalt Linuxist pole Windowsil sisseehitatud konsooli käsk lõimedega töötamiseks, mis on Linuxis sed.

Muidugi saate selle installida, kuid see on liiga palju vaeva. Teise võimalusena võite kasutada CygWin- emulaator Linuxi konsoolid Windowsi süsteemide jaoks.

Hea, kui see on juba installitud. Vastasel juhul toob MySQL-i andmebaasist andmete eksportimine valitud meetodil meile liiga palju probleeme.

Kuid teabe väljavõtt xls-faili on sama lihtne kui 5 kopikat :) Selle käivitamine on väga lihtne järgmisel viisil mida ma isiklikult proovisin:

Mysql -u kasutajanimi -d andmebaasi_nimi -p -e "SELECT * FROM andmebaasi_tabel;" > tee_ja_faili_nimi.xls

See fail avanes Microsoft Office Excelis ilma probleemideta. Ainuke asi on see, et selle avamisel ilmus ekraanile hoiatus, et avatava faili tegelik vorming erineb selle määratud laiendist.

Kuid toimingu kinnitamisel avanes dokument ilma raskusteta - kogu teave jaotati lahtriteks sellisel kujul, nagu see tabelisse salvestati.

Ma ei tea, võib-olla kui teete Microsoft Office Excelis mingeid konkreetseid toiminguid, tekivad tulevikus probleemid; ma pole nii sügavale kaevanud. Tavapäraselt andmete vaatamisel vähemalt, ma ei näinud midagi ebatavalist.

Kui teil tekib MySQL-ist eksporditud xls-faili kasutamisel probleeme selles või mõnes muus programmis, andke mulle kommentaarides teada.

Ülalkirjeldatud meetodi abil saate põhimõtteliselt eksportida MySQL-i andmebaasi sisu csv-faili. Kuid siis kirjutatakse tabeli erinevate väljade andmed massiliselt, ilma eraldajateta, mida ei pruugita hästi kuvada erinevaid programme tabelitega töötamiseks, milles nad tavaliselt töötavad csv-failidega.

OpenOffice, muide, ei hooli :) See piiritles automaatselt MySQL-i andmebaasi sisu xls-i eksportimise teel saadud teabe. Ma ei tea, kuidas ta seda teeb, aga soovitan seda kasutada :)

Noh, seesama Microsoft Office Excel kuvas tabelis kogu ühele kirjele vastava teabe, kirjutades selle ühte lahtrisse ilma eraldajateta. Ma arvan seda Sarnasel viisil Tulemas on rohkem tabeliredaktoreid.

Seetõttu peate MySQL-i andmebaasi csv-failidesse eksportimisel tegema seda teabe eraldades eritegelased, tajuvad toimetajad.

Ja siis lähenesin järk-järgult teisele meetodile MySQL-i eksport andmed csv- ja xls-vormingus, mis hõlmab MySQL-i käsurea kasutamist.

Nii et MySQL-i andmete sel viisil csv-faili eksportimiseks vajame järgmist käsku:

SELECT * FROM andmebaasi_tabelist VÄLJASTUSSE "tee_ja_faili_nimi.csv" VÄLJAD, MIS LÕPETAB "," SULEB """ READ, MIS LÕPETAB "\n";

Selle täitmise tulemusena saate helistamisel määratud teele csv-faili, mis avaneb enamikes kaasaegsetes tabeliredaktorites õigesti. Tuletan igaks juhuks meelde, et jookske see käsk vaja ainult pärast MySQL-i andmebaasiga ühenduse loomist.

See käsk sobib suurepäraselt ka MySQL-i andmete eksportimiseks xls-faili, et neid Microsoft Office Excelis õigesti kuvada. Ainult sel juhul ei vaja me eraldajaid, sest need segavad teabe jagamist rakkudeks:

SELECT * FROM andmebaasi_tabelist INTO OUTFILE "tee_ja_faili_nimi.xls";

Praktikas pole aga kõik nii lihtne, kui kirjeldasin. Käsu käivitamisel võib konsoolis ilmneda järgmine tõrge, mis takistab eksportimise lõpetamist:

VIGA 1290 (HY000): MySQL-server töötab suvandiga --secure-file-priv, nii et see ei saa seda avaldust käivitada

Selle põhjuseks on asjaolu, et teie MySQL-server käivitati selle valikuga --secure-file-priv. Isiklikult puutusin selle probleemiga kokku põhjusel, et konsoolis töötamiseks kasutan WAMP OpenServeri komplektis sisalduvat MySQL-i levitamiskomplekti, mis omakorda käivitab sel viisil MySQL-i serveri.

Probleemi lahendamiseks on kaks võimalust:

Esimene meetod tundus mulle liiga keeruline, sest... Peaksin süvenema OpenServeri seadistusse, mis ei olnud minu kirjutatud koos kõigi sellest tulenevate asjaoludega 🙂 Seetõttu otsustasin valida teise tee. Kui kohtate sarnane probleem- korda minu järel.

Kõigepealt peate minema MySQL-i käsureale ja käivitama ühe järgmistest käskudest:

NÄITA MUUTUJAID NAGU "turvaline_fail_priv"; SELECT @@GLOBAL.secure_file_priv;

Mõlema käivitamise tulemuseks on MySQL-i globaalse muutuja väärtus turvaline_fail_priv, mis sisaldab teed kataloogi, mille kaudu saab teha MySQL-i andmete ekspordi ja impordi toiminguid (edaspidi link andmete importimise artiklile).

Need. käskude kasutamisel LAADI ANDMEID Ja VALI... VÄLJASTIKKU eksporditud ja imporditud failid võivad asuda ainult selles kataloogis.

Minu puhul oli see muutuja üldiselt seatud NULL, sest Nagu ma juba ütlesin, kasutan konsoolis töötamiseks OpenServeris sisalduva distributsiooni MySQL-i utiliite. See väärtus näitas, et määratud käskudega MySQL-i andmete ekspordi- ja imporditoimingud suleti täielikult.

Nagu hiljem selgus, on see tavaline olukord karbis WAMP- ja MAMP-serverite kasutamisel.

Kahjuks ei olnud minu puhul võimalik kasutada MySQL-i globaalsete muutujate väärtuste muutmise tavalisi meetodeid:

SET muutuja_nimi = väärtus;

Selle tulemusena nägin konsoolis ainult järgmist viga:

VIGA 1238 (HY000) real 1: muutuja "secure_file_priv" on kirjutuskaitstud muutuja.

Selle tulemusena muutuja väärtuse muutmiseks turvaline_fail_priv ja avage ekspordi- ja imporditoimingud, pidin minema MySQL-i konfiguratsioonifaili mysql.ini, mis asub MySQL-i distributsiooni juurkataloogis või millele pääseb juurde muul viisil, kui MySQL on kaasas teie WAMP/LAMP/ MAMP-serveri ehitamine.

Muide, kui soovite failivahetuse spoolkataloogi teed muuta, peate tegema sama.

Minu puhul oli see muutuja konfiguratsioonis juba olemas, ainult kommenteeritud kujul:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

Kui teil seda pole, kirjutage see jaotisesse nullist (vähemalt minu jaoks see seal asus).

Tühistasin selle kommentaarid ja otsustasin seda kasutada sellisel kujul, nagu see oli kirjutatud. Need. MySQL-ist andmete eksportimisel ja tagasi importimisel salvestatakse minu failid nüüd kataloogi c:\openserver\userdata\temp\.

Pärast konfiguratsiooni (muide, mis tahes) muutmist ärge unustage võimaluse korral oma serverit või eraldi teenust, mille seadeid muutsite, taaskäivitamast, et muudatused jõustuksid!

Et olla kindel, kuvage muutuja pärast MySQL-serveri taaskäivitamist uuesti turvaline_fail_priv ja kopeerige selle väärtus lõikepuhvrisse.

Ja nüüd peame kutsuma käsu nagu alguses, ainult enne faili nime, kuhu MySQL-i andmebaasist teave salvestatakse, kirjutage muutujasse salvestatud tee järgmisel kujul:

SELECT * FROM andmebaasi_tabelist INTO OUTFILE "turvaline_fail_priv_väärtus\faili_nimi.csv";

Pärast seda toimis minu puhul andmete eksportimine MySQL-ist.

Oluline punkt! Kui töötate Windowsi all MySQL-iga, ärge unustage faili tee määramisel muuta “\” väärtuseks “/”, vastasel juhul kuvatakse tõrge --secure-file-priv ilmub endiselt.

See artikkel käsitleb MySQL-i andmebaasi ja selle tabeleid ning MySQL-i tabelite andmete väljavõtmist erinevaid formaate, jõuab lõpuni. Kirjutage oma ülevaated kommentaaridesse ja jagage kõigiga oma skriptivalikuid, mida praktikas kõige sagedamini kasutate.

Kui teile artikkel meeldis, saate autorit tänada, postitades artikli uuesti sotsiaalmeedia või rahaliselt kasutades allolevat vormi, et saaksite tasuda põhihostimise eest.

Edu kõigile ja kohtumiseni! 🙂

P.S.: kui teil on vaja veebisaiti või on vaja teha muudatusi olemasolevas, kuid selleks pole aega ega soovi, võin pakkuda oma teenuseid.

Rohkem kui 5 aastat kogemust professionaalne veebisaitide arendamine. Töötama koos PHP

Artikli idee on luua kvaliteetne juhend mysqldump programmi installimiseks ja sellega töötamiseks. Kasutades palju näiteid ja kogudes kõike kasulikud valikud ja selle utiliidiga töötamise parameetrid. Kõike on raske ühte artiklisse mahutada, nii et kõik on lühike ja asjakohane. Kui keegi millestki valesti aru saab, siis palun kommenteerige artiklit.

Sektsioonid:

Paigaldaminemysqldump:

Mis on mysqldump?

MySQLdump- See serverirakendus, mis võimaldab varundada (edaspidi dump) andmebaase ja neid sinna salvestada eraldi fail. Samal ajal saate teha paindlikke dump-sätteid: mitu või kõik andmebaasid, arhiveerimine gzipis, lukustuse lisamine, käskude langetamine ja palju muud. Võimalik ka vastupidine import andmebaasi varukoopiad. Saab teha koos kasutades PHP-d, kuid see on vastuvõetamatu suurte projektide puhul, millel on suur andmekaal.

See programm on väga kasulik andmete eksportimisel ja importimisel andmebaasist. Selle saab teie hostimisse standardina installida (täpsemalt mysql server). Kuid selleks, et täiustada oma oskusi mysqldumpiga töötamisel ja õppida seda installima, saate selle installida denwerisse. Seda me nüüd teemegi.

Laadige alla mysqldump

Saate alati alla laadida programmi mysqldump meie veebisaidilt ja rakenduse allalaadimine on täiesti tasuta. Laadige alla mysqldump allolevalt otselingilt.

Kuidas installida mysqldump?

Paigaldame kohalikule pinnale Denweri server. Rakenduse installimine on lihtne ja lihtne, selleks järgige allolevaid juhiseid ja ekraanipilte.

1. Kopeerige fail mysqldump.exe Denveri kausta:

D:\WebServers\usr\local\mysql5\bin\
Sel juhul võib teil olla mysql5 kausta nimi pisut erinev, näiteks mysql-5.1 või veidi muudetud. Seetõttu on suurema selguse huvides allpool ekraanipilt:

2. Käivitage Denver

Kindlasti teate ise, kuidas Denwerit käivitada.


3. Käivitage konsool:

Start->Run->cmd.exe või Windows 7 puhul: Start->Otsi->Sisestacmd.exe->Sisenema, nagu on näidatud ekraanipildil:

4. Testimine:

Minge konsooli käskude abil Denveri virtuaalsele kettale (mul on W:\) ja kausta, kus on rakendus mysqldump. Käsu täitmise kinnitamiseks vajutage sisestusklahvi.

Sisestage käsud:

K:- minge Denveri virtuaalsele kettale

CDusr\kohalik\mysql5\prügikast– minge rakendusega kausta

mysqldump -uroot teie_db_nimi>faili_nimi.sql– testimine, suvalise andmebaasi kopeerimine faili, mis salvestatakse prügikasti.

Minu installimine õnnestus, loodan, et ka teie oma. bin kaustas leiame andmebaasi varukoopia faili. Programmi laialdasema kasutamise õppimiseks lugege artikli järgmisi jaotisi.

Alustamine: andmebaasi eksport ja import

Andmebaasi eksport

Oleme rakenduse juba installinud ja õppinud konsooli kasutama. Oleme juba teinud prooviprügi. Nüüd teeme lihtsa andmebaasi tõmmise vajalikku kataloogi. Selleks lõin varem kasutatud andmebaasi nimega “test”. See asub kohalikus denweri serveris. Allpool on toodud samm-sammult käsud konsool testandmebaasi sisestamiseks soovitud kausta ja soovitud faili.

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

Allolev ekraanipilt näitab testkaustas olevat tühjendusfaili:

Eksport on edukalt lõpule viidud. Nüüd proovime selle faili oma serverisse tagasi importida.

Andmebaasi import

Andmebaasi importimiseks tühjendage andmebaas phpmyadminis ja kasutage cmd.exe-s järgmist käsku:

Mysql -uroot test

Oluline märkus: kui eksportimisel kasutasime mysqldump..., siis tuleb importimisel käivitada käsk mysql. See näide on rakenduse mysqldump põhikasutus andmebaasi varukoopiate loomiseks. Veelgi rohkem käske ja näiteid leiate jaotisest ja artiklist.

MySQLdump näited

Allpool on toodud kõige sagedamini kasutatavad näited mysqldumpi kasutamisest. Millega saate mitte ainult varukoopiaid teha, vaid ka mõned parameetrid lisada Reservkoopia: tihendamine gzipi abil, varundamise kuupäeva lisamine, vaid mõne tabeli või andmebaasi struktuuri dumping, paindlike sätete kasutamine. Need valikud võimaldavad teil suurendada tühjendamise kiirust ja kasutada säästlikult kettaruumi.

Prügila loomine

mysqldump –uUSER -h82.82.82.82 -pPAROOLI ANDMEBAAS > /tee/failile/dump.sql

-u või --kasutaja=...- Kasutajanimi

-h või --host=... - kaughost(localhosti puhul võite selle parameetri välja jätta)

-lk või -- parool- küsige parooli

andmebaasi- eksporditud andmebaasi nimi

/tee/failile/dump.sql- tühjendamise tee ja fail

Dumpime mitu andmebaasi, selleks kasutame atribuuti --databases või lühidalt –B, vt allolevat näidet:

Mysqldump -uroot -h82.82.82.82 -p -B andmebaas1 andmebaas2 andmebaas3 > andmebaasid.sql

Kui soovite luua kõigi andmebaaside tõmmise, peate kasutama parameetrit –all-databases või –A lühendatud kujul, vaadake näidet:

Mysqldump -uroot -h82.82.82.82 -p -A > kõik-andmebaasid.sql

Andmebaasi struktuuri loomine ilma andmeteta

Selleks peate kasutama parameetrit --no-data, nagu on näidatud allolevas näites:

Mysqldump --no-data - uUSER -pASSWORD ANDMEBAAS > /tee/failile/schema.sql

Looge ainult ühest või mitmest andmebaasitabelist koosnev tõmmis

mysqldump -uUSER -pPASSWORD ANDMEBAASI TABEL1 TABEL2 TABEL3 > dump.sql

Looge prügimägi ja arhiivige see sissegzip

mysqldump -u KASUTAJA -pPASSWORD ANDMEBAAS | gzip > /tee/väljundfaili.sql.gz

Looge failinimes kuupäevaga tõmmis

mysqldump -uUSER -pASSWORD ANDMEBAAS | gzip > `kuupäev +dump.sql.%Y%m%d.%H%M%S.gz`

Täiendavate atribuutide kasutamine

mysqldump -Q -c -e -uUSER -pPASSWORD ANDMEBAAS > /tee/failile/dump.sql

Nagu varem mainitud, vähendavad need atribuudid lõplikku faili suurust ja kiirendavad varundusprotsessi. Täpsemalt:

-Q mähib nimed jutumärkidesse

-c teeb täieliku sisestuse, sealhulgas veergude nimed

-e teeb pikendatud sisestuse.

Täna tahan rääkida andmebaaside prügimägedest. See fraas ise oli kunagi hirmutav, kuigi üldiselt pole selles midagi hirmutavat. Nii et kõigepealt ja põhiküsimus: mis on andmebaasi dump? Vastus sellele on ootamatult lihtne – andmebaasi dump on fail koos selle sisuga, mis võimaldab andmebaasi nullist taastada. Need. see on lihtsalt selle koopia. Miks siis andmebaasi tõmmist ei nimetata "andmebaasi koopiaks"? Asi on selles, et prügimägi ise ei ole andmebaas, see võimaldab teil seda ainult uuesti luua. Asi on selles, et andmebaasi saab salvestada erinevaid faile olenevalt andmebaasi versioonist, tüübist operatsioonisüsteem ja muud tegurid. Need. Ühe andmebaasi kõigi failide leidmine süsteemist ja nende ülekandmine teise süsteemi on väga keeruline. Selle ülesande hõlbustamiseks kasutatakse andmebaasi tõmmist.

Miks on vaja andmebaasi üle kanda?

Esiteks varukoopiate ehk taastepunktide loomiseks enne oluliste muudatuste tegemist struktuuris – et probleemide ilmnemisel oleks võimalik tagasi keerata. Näiteks installisite kolmanda osapoole komponendi, kuid selle tulemusena osutus sait töövõimetuks ja peate selle töö kiiresti taastama. Siin tekibki vajadus kasutada andmebaasi dump.

Teiseks, veebilehte luues tehakse seda tavaliselt esmalt edasi kohalik masin virtuaalse veebiserveri alla ja alles seejärel üle hostimisele. Ja kui failide ülekandmisega on kõik enam-vähem selge, siis andmebaasi teisaldamine on ülesanne, mis ei ole nii ilmselgelt lahendatav. Ka siin ei saa te ilma andmebaasi prügimäeta hakkama.

Niisiis, saime aru, mis on andmebaasi prügimägi. Jääb vaid küsimus, kuidas seda kasutada. Vaatleme standardset veebiprogrammeerimise ülesannet – kohalikus masinas loodud veebisaidi ülekandmist veebimajutusse. Ma ei kirjelda üksikasjalikult failide edastamist; keskendun andmebaasidele. Niisiis, meil on MySql andmebaas ja ülesanne on see veebimajutusse üle kanda. Et mitte jalgratast uuesti leiutada, kasutame laialdaselt kasutatavat utiliiti phpMyAdmin, mille reeglina installib alati teie teenusepakkuja ja see on ka Denveris kaasas. Lõpuks on utiliit ka tasuta ja allalaadimiseks saadaval ametlikul veebisaidil. See töötab veebiserveris ja on sisse kirjutatud php keel, mis võimaldab teil seda otse brauseris kasutada. Need. Siin ei tohiks probleeme tekkida, kui need tekivad, kirjutage kommentaaridesse ja me lahendame selle.

Alustame andmebaasi dump loomisega. Avage phpMyAdmin, valige vajalik andmebaas ja klõpsake vahekaarti Ekspordi". Selle tulemusena peaksite saama midagi sellist:

Siin peate valima kõik tabelid (või need, milles peate muudatused tagasi tõmbama) ja sisestama raadionupu SQL väärtus. Jaotises Struktuur saate märkida esimese välja "Lisa DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT" nii, et enne tõmmise importimist kustutatakse sihtandmebaasis olevad vastavad tabelid, esmakordsel teisaldamisel märkeruudu võib jätta märkimata. Samas allolevas aknas näeme jaotist "Salvesta failina":

Tegelikult märkige "Salvesta failina" ja kirjutage soovitud faili nimi. Andmebaasi tõmmise saab arhiveerida, kuid tavaliselt pole see piisavalt suur, et faili tihendamine oleks mõttekas. Klõpsake nuppu "GO" ja hankige brauseris standardne faili salvestamise aken:
. Salvestatud fail on andmebaasi tõmmis. Kui avate selle samas märkmikus, näete rea alguses nagu

PhpMyAdmin SQL Dump
-- versioon 3.2.3
-- http://www.phpmyadmin.net

Fail ise koosneb päringutest väärtuste loomiseks ja tabelisse sisestamiseks, mis on kirjutatud SQL keel. Siin pole absoluutselt mingit šamanismi, kõik on väga ilmne. Nüüd on järgmiseks ülesandeks prügila importimine. Ka temaga pole midagi keerulist. Minge oma hostimise juhtpaneelile, leidke sealt phpMyAdmin ja käivitage see. Sõltuvalt hosti seadetest peate võib-olla määrama sisselogimise/parooli. Noh, siis on toimingud sarnased - valige soovitud andmebaas, klõpsake vahekaarti "Import", näeme järgmist akent:

Jaotises "Imporditav fail" määrake nupu "Sirvi" abil andmebaasi tühjendusfail, allpool sisestame kodeeringu - joomlas on see vaikimisi utf-8. Allpool on jaotis "Osaline import" ja väli "Kirjete (päringute) arv, mida tärnist vahele jätta", kuhu saate sisestada numbriline väärtus- ühe käiguga töödeldud ridade arv, kui kogu andmebaasi ei jõua skripti eluea jooksul importida. Vaikeväärtus "0" vastab kogu andmebaasi importimisele ühe skripti käivitamisega. Oma praktikas pole ma kunagi pidanud kokku puutuma sellega, et baasil pole aega ühe passi täitmiseks, kuigi see ei tähenda, et selliseid juhtumeid ei juhtuks. Ülejäänud väljade väärtusi ei pea muutma, lihtsalt vajutage nuppu "GO". See on kõik, andmebaasi dump on imporditud.

Ja lõpuks paar täpsustust.

1) Miks ma kirjeldasin kõigi tabelite, mitte kogu andmebaasi importimise/eksportimise meetodit? Fakt on see, et kõige sagedamini peate tegelema impordi/ekspordi protseduuriga andmete edastamisel veebiserverist kohalikku masinasse ja vastupidi. Kuid väga sageli kasutatakse kohalikul masinal juurdepääsu konto"root" ilma paroolita. Me ei saa seda endale hostimisega lubada. Ja andmebaas ei sisalda mitte ainult andmeid, vaid ka "privileege" - õigusi sellele juurde pääseda teatud kasutajad. Et vältida iga kord kasutajate loomist/kustutamist ja neile juurdepääsuõiguste määramist, kasutatakse lähenemist, kus andmebaasi tõmmisesse salvestatakse ainult tabeli struktuur ja selles olevad andmed. Kui loote just samale serverile varukoopiat, on täiesti võimalik teha kogu andmebaasi dump.

2) Miks phpMyAdmin? Asi pole siin üldse selles, et sellele pole alternatiivi - neid on lihtsalt palju, on funktsionaalsemaid ja lihtsamaid asju. Lihtsalt phpMyAdmin logib sisse standardne komplekt enamiku jagatud hostimisteenuste puhul, st. Selle installimiseks ei pea te absoluutselt midagi tegema. Need. me lihtsalt avame selle ja kustutame andmebaasi. Ja muidugi võib phpMyAdmini kasutamine olla kasulik paljude ülesannete puhul – näiteks päringute testimisel, tabelite struktuuri ja neis olevate andmete vaatamisel.

Noh, see on tegelikult kõik, mida ma selles artiklis teile öelda tahtsin. Kommentaarid on teretulnud nagu alati.

Novosibirski saidi tugi