Adatbázis exportálása és importálása a PHPMyAdminban. MySQL adatbázis importálása a konzolba MySQL adatbázis importálása SSH használatával

Jó napot barátaim, ma megtanuljuk, hogyan készítsünk... Miért van erre szükség, kérdezheti. Először is adatbázis exportálás rendszeresen meg kell tenni, hogy vészhelyzetekben ne veszítsen fontos információkat. Az exportálás egy kis fájl lesz, amelyben az adatbázissal kapcsolatos összes információ tárolódik. Mert adatbázis exportálás be kell lépnie a PHPMyAdmin oldalra, és rá kell kattintania az Önt érdeklő adatbázisra. Ezek után látni fogja az összes táblát benne, és anélkül, hogy belemennénk, kattintson az export nevű menügombra. A következő oldal jelenik meg előtted:


Azt tanácsolom, hogy válasszon gyors exportálási módot, és adja meg a formátumban is SQL. Ezt követően kattintson az OK gombra. Megjelenik előtted egy ablak, amelyben a fájl mentését kérik.


A fájlt a kívánt helyre menti, a legfontosabb, hogy ne feledje, hová mentette, mert ez nagyon fontos számunkra.
Ami a normál exportálási módot illeti. Használhatod is, ha szükséged van rá, sok további beállítás van, amit exportáláskor beállíthatsz. Például válassza ki a szükséges táblákat az adatbázisból, adja meg a kódolást és még sok mást. Ha érdekel ez a beállítás, akkor nézd meg. De nem megyünk mélyebbre ebbe a beállításba.
Miután elmentette a fájlt a számítógépére, megkérem, hogy törölje az adatbázist. Nem fogom elmagyarázni, hogyan kell ezt csinálni, mert ezen már keresztülmentünk. Ne félj törölni, veled mindent visszaadunk a helyére.
Itt az ideje, hogy elfoglalja magát adatbázis importálása. Lépjen az import menübe.


Kiválasztjuk a számítógép áttekintését, és megadjuk a fájl elérési útját. És kattintson az OK gombra. Amint látja, egy hiba jelent meg előtted. Ne ijedjen meg, a lényeg az, hogy nem magát az adatbázist importáltuk, hanem csak az összes táblát. Ezért először hozzon létre egy adatbázist, lépjen be, és kattintson az importálás gombra, miután elvégezte a fentieket. Az ok gomb megnyomásával minden rendben lesz, és ha mindent helyesen csinált, akkor nem jelenhet meg hiba.


Mint látható, a táblázatunk újra megjelent a helyén, és a benne lévő összes adatot elmentettük. Most már megérted, milyen csodálatos lehetőség adatbázis exportálása és importálása a PHPMyAdminban. Végül is, ha egy nap alatt elveszíti az összes munkáját sok éven keresztül, ennek a fájlnak köszönhetően mindent visszakaphat. Ezzel elköszönök tőled és hamarosan találkozunk.

Ebben a cikkben két kérdést vizsgálunk meg: hogyan importálhat adatbázisokat, és hogyan lehet megoldani a problémát a nagy adatbázisok importálásával a php.ini beállításainak módosításával.

Mint ismeretes, az adatmentés a garancia arra, hogy vissza tudja állítani weboldalát, ha hirtelen, valamilyen okból megszakad az oldal működése. Hogyan lehet visszaállítani egy webhelyet biztonsági másolatból? Számos módja van, megvizsgáljuk, hogyan importálhat mysql adatbázist a phpMyAdminba. Az adatbázis-importálási folyamat megkezdése előtt törölnie kell az összes táblát az adatbázisból, amelybe a fájlokat importálni kívánja.

Táblázatok törléséhez jelentkezzen be a phpMyAdmin kezdőlapjára, és kövesse az alábbi lépéseket:


2 - kattintson az Összes kijelölése gombra;
3 - válassza a Törlés lehetőséget a legördülő menüből, majd kattintson az OK gombra,

Most megkezdheti a mysql adatbázis importálását. Ehhez kövesse az alábbi lépéseket:

1 - válassza ki a kívánt adatbázist;
2 - nyissa meg az Importálás lapot a felső menüben;
3 - A Tallózás segítségével keresse meg a biztonsági másolatot az adatbázissal, és kattintson az OK gombra.

Ha mindent helyesen csinált, a phpMyAdmin ablakban megjelenik egy üzenet, amely jelzi, hogy az importálás sikeres volt.

Nagy mysql adatbázisok importálása

A webmesterek gyakran találkoznak a nagy mysql adatbázisok importálásának problémájával. A probléma abból adódik, hogy a PHPMyAdminban az adatbázis dump letöltését korlátozza a feltöltött fájl mérete, amely alapértelmezés szerint nem haladhatja meg a 2 MB-ot (2048 KB). Amikor egy nagy adatbázis kiíratását próbálja letölteni, hibaüzenet jelenik meg: „A letölthető fájl mérete valószínűleg túl nagy...” stb.

Nézzünk egy módot egy nagy adatbázis kiíratásának importálására. Az import fájl méretkorlátját a PHP konfiguráció határozza meg. A PHP konfigurációs beállításai a php.ini fájlban vannak megadva. Ez azt jelenti, hogy nagy adatbázisok importálásához módosítanunk kell a feltöltött fájlok maximális méretét a php.ini konfigurációs fájlban.

Hol található a php.ini fájl? A php.ini fájl elérési útját a következőképpen számíthatja ki:

  • Hozzon létre egy info.php fájlt, és helyezze el a következő kódot;
  • Töltse fel a létrehozott fájlt az oldal gyökérmappájába (www, public_html);
  • Írja be a http://your_site/info.php címet a böngésző címsorába;
  • A megnyíló ablakban keresse meg a Loaded Configuration File elemet, ahol megjelenik a fájl elérési útja;

Nagy mysql adatbázis importálásához meg kell változtatnia a php.ini direktívákat a PHPMyAdminban.

A php.ini fájlt megtaláltuk, most már csak szerkeszteni kell, vagy inkább módosítani kell néhány direktívát a fájlban az alábbiak szerint:

A szkript teljes betöltéséhez szükséges maximális idő (mp):
max_execution_time = 60
A maximálisan megadott idő (másodpercekben), amíg a szkript megkapja az összes adatot:
max_input_time = 90
A szkript által használható maximális memóriamennyiség:
memória_korlát = 128M
A feltöltött fájlok megengedett maximális mérete:
feltöltési_maximális_fájlméret = 200 millió
Az átvitt adatok maximális mérete, amelyet a PHP elfogad:
post_max_size = 180M

A fenti direktívák megváltoztatásával a php.ini fájlban 180 M-ig tudtunk adatbázisokat importálni a PHPMyAdmin segítségével.

A Sypex Dumper ingyenes verzióját is használhatja adatbázis-kiíratási adatok importálásához. A dömper a maximális működési sebességre van optimalizálva, valamint körülbelül 800 megabájtos adatbázisokkal dolgozik.

Üdvözlet, barátok! 🙂

Ma úgy döntöttem, hogy folytatom a beszélgetést a MySQL-lel való munkavégzésről a konzolon, és odafigyelek a MySQL-adatbázis exportálására.

Ebben a cikkben arról fogok beszélni, hogyan lehet kiíratni egy MySQL adatbázist, valamint hogyan tölthet fel adatokat MySQL-ből Excel fájlba és csv formátumba.

Különféle lehetőségeket fogunk megvizsgálni az információk lekérésére: egy vagy több adatbázis kiíratásának létrehozása, adatok exportálása egyedi táblákból és tetszőleges eredmények KIVÁLASZTÁS kéréseket.

Arról is beszélünk, hogyan lehet adatokat kiadni egy MySQL adatbázisból a szerverkonzolon és a MySQL parancssorban.

Ebben a cikkben nem beszélek arról, hogyan exportálhat adatokat a phpMyAdmin és más vizuális eszközök segítségével.

Először is azért, mert az interneten már elegendő anyag található ebben a témában. Ráadásul jó minőségű anyag, amit nem szívesen másolok be.

Másodszor, én magam is röviden áttekintettem az egyik cikkemben, ahol a ról beszéltem, a MySQL-adatbázisból egy SQL-fájlba való információ kiadásának folyamatát.

Tehát, ha Ön nem professzionális fejlesztő vagy rendszergazda, akinek hasznosak lehetnek a konzollal való munkavégzésről szóló információk, és csak az adatbázis phpMyAdminba való exportálására vonatkozó utasításokért jött, akkor a fenti linken található információk elolvasására korlátozódhat. .

Szeretném, ha helyesen értsen: semmilyen módon nem akarom megbántani, csak azt szeretném, ha az idejét úgy töltené el, hogy a lehető legtöbb hasznot hozza vállalkozása számára, és megkapja azt, amit keresett.

Ezzel véget is ért a bevezető rész, és áttérünk a MySQL adatbázis-kiíratást létrehozó konzolparancsok áttekintésére, amelyeket úgy döntöttem, hogy a mentett adatok mennyisége szerint rendezem: kezdve a teljes adatbázis exportálásával, az egyes táblákkal és a fájlok eredményeivel. tetszőleges lekérdezések.

MySQL adatbázis dump létrehozása a konzolon keresztül

Mindjárt az elején szeretnék egy kis pontosítást tenni.

Adatbázis dump egy SQL parancsokat tartalmazó fájl, amely elindításakor adatbázisok és táblák létrehozását, valamint információkkal való feltöltését teszi lehetővé. A dumpra azoknak van szükségük, akik szeretnének letölteni egy MySQL adatbázist, hogy átmásolják egy másik szerverre vagy egy meglévőn belülre.

Valamint, ha valaki nem tud róla, a MySQL adatbázis biztonsági mentése lényegében annak egy bizonyos időközönként készült dumpje, amely lehetővé teszi az adatbázis szerkezetének és adatainak szükség esetén visszaállítását.

Adatok exportálása- ez egyszerűen információ kinyerése a táblázatokból szöveges formában a szöveges vagy grafikus szerkesztőkkel való további munkához.

Ezért ezeknek a műveleteknek a parancsai kissé eltérőek lesznek.

Az adatbázis kiíratásának létrehozásához a MySQL rendelkezik egy beépített segédprogrammal mysqldump, amelyet a MySQL parancssoron kívül kell használni a kiszolgálókonzolban vagy más shellben.

Tehát a legegyszerűbb és leggyakoribb lehetőséghez - adatok exportálása egy adott adatbázisból a MySQL-konzolon, hogy átvigye azokat egy másik szerverre, vagy belső másolást hajtson végre, futtassa a következő parancsot:

Mysqldump -u felhasználónév -p adatbázis_neve > elérési_és_kiíratási_fájlnév

Ez a segédprogram csak SQL-parancsokkal rendelkező fájlok formájában tud MySQL adatbázis-kiíratást létrehozni, így függetlenül attól, hogy milyen kiterjesztést választunk a fájlnak, a tartalma minden esetben ugyanaz lesz. És ne felejtse el ellenőrizni annak a könyvtárnak az írási jogosultságát, amelyben ez található, mielőtt exportálna információkat a MySQL-ből, hogy a fájl létrejöhessen.

Ha hirtelen ki kell írnia a kiszolgáló összes adatbázisát, használja a következő parancsot:

Mysqldump -u felhasználónév -p --összes-adatbázis > elérési_és_kiíratási_fájlnév

Ha csak néhány konkrét adatbázist szeretne kiíratni, akkor a következő paraméterekkel kell meghívnia a mysqldump parancsot:

Mysqldump -u felhasználónév -p --adatbázisok adatbázis_neve, adatbázis_neve2, ... > elérési_és_kiíratási_fájl_neve

Ennek eredményeként minden esetben kap egy MySQL adatbázis dump-et, amely tartalmazza a benne lévő táblák szerkezetének (mezők, típusuk, indexek, kulcsok stb.) létrehozásához szükséges parancsokat, valamint az adatokkal való feltöltési műveleteket.

Ez az opció csak teljes adatbázisok visszaállítására és másolására alkalmas.

A továbbiakban arról fogunk beszélni, hogyan készíthetünk biztonsági másolatot bizonyos MySQL táblákról, és hogyan szerezzük be az adataikat olvasható formában.

MySQL tábla kiíratása és adatok exportálása

Bizonyos MySQL adatbázistáblák kiíratásának létrehozásához ugyanerre a segédprogramra lesz szükségünk mysqldump, a következő paraméterekkel hívják meg:

Mysqldump -u felhasználónév -p adatbázis_neve tábla_neve, tábla_neve2, ... > elérési_és_kiíratási_fájl_neve

A mysqldump meghívásakor paraméterértékként megadhatjuk a szükséges táblákat -- táblázatok, a paraméter használatakor -- adatbázisok figyelmen kívül lesz hagyva:

Mysqldump -u felhasználónév -p --adatbázisok adatbázis_neve, adatbázis_neve2 --táblák tábla_neve, tábla_neve2, ... > elérési_és_kiíratfájl_neve

A fenti példa a következő hibát jeleníti meg:

Mysqldump: Hiba: 1049: Ismeretlen adatbázis "adatbázis_neve1" az adatbázis kiválasztásakor

Mint látható, csak a listából a legfrissebb adatbázis kerül felhasználásra. Elvileg ez a viselkedés teljesen logikus, mert Előfordulhat, hogy a megadott táblák nem jelennek meg minden adatbázisban.

Rendben, megkaptuk a MySQL adatbázis-táblázatok kiíratását. Használható ezek visszaállítására vagy másolására a szerkezettel együtt.

De mi van akkor, ha csak a bennük tárolt információkat kell beszereznie, és lehetőleg olvasható formában, hogy elküldhesse a vezetőnek, és megtekinthesse egy normál szöveg- vagy táblázatszerkesztőben? A MySQL-nek erre is vannak eszközei.

A szolgáltató felhívásának lehetősége segít terveink megvalósításában mysql a konzolról bizonyos paraméterekkel:

Mysql -u felhasználónév -p adatbázis_neve -e "SELECT * FROM táblanév"

Ez a parancs lehetővé teszi számunkra, hogy lekérdezést hajtsunk végre a szükséges adatbázisban, és az eredményt a konzolra küldjük anélkül, hogy a MySQL parancssorba mennénk.

Nos, annak érdekében, hogy ne adjon ki adatokat a konzolra, hanem fájlba írja, ki kell egészítenie a parancsot a következőképpen:

Mysql -u felhasználónév -p -e "SELECT * FROM táblanév" > elérési_és_fájlnév

Ezeknek a konstrukcióknak köszönhetően nem csak a táblázat összes mezőjében, hanem konkrétan tárolt adatokhoz juthatunk hozzá. Ehhez csak cserélje ki a helyettesítő karaktereket (*) a szükséges karakterekre, vesszővel elválasztva.

Ennek eredményeként a kimenet egy normál szöveges fájl lesz, amely fejléc formájában tartalmazza a mezők nevét és az azokra vonatkozó információkat minden rekordhoz. Megnyitható egy normál szövegszerkesztőben, függetlenül attól, hogy milyen felbontást adsz meg a létrehozáskor.

Ha szeretne adatokat exportálni egy MySQL adatbázisból xls vagy csv formátumban, hogy az eredményül kapott fájl helyesen jelenjen meg a táblázatkezelőkben, akkor ezt egy kicsit később elmondjuk :)

Biztonsági mentések készítése és adatok kiadása MySQL adatbázisból lekérdezések segítségével

Beszéltünk arról, hogyan lehet kiírni egy MySQL adatbázist - egy vagy több, valamint az egyes táblákat. De a gyakorlatban néha vannak olyan esetek, amikor olyan adatkészletet kell exportálnia, amely nem korlátozódik egy táblára. Vagy csak néhány adatot kell kiválasztania a táblázatból.

A vállalati projektek fejlesztői különösen gyakran találkoznak ezzel, amikor a vezetők mindenféle statisztikai adatszolgáltatást kérnek tőlük. Vagy amikor biztonsági másolatot kell készítenie a táblázat egy bizonyos részéről a gyors visszaállításhoz.

A biztonsági mentéshez ugyanerre a segédprogramra lesz szükségünk mysqldump, amelyet így kell majd hívni:

Mysqldump -u felhasználónév -p adatbázis_neve táblanév --ahol "keresés" > elérési_és_kiíratási_fájlnév

Ennek eredményeként kapunk egy fájlt SQL parancsokkal, hogy a teljes struktúrájával létrehozzunk egy táblát, amely a létrehozást követően egy keresési lekérdezéssel kiválasztott információkkal lesz feltöltve.

Ha csak egy vagy több táblában tárolt adatokat kell lekérnünk, akkor a táblázat összes adatának lekérésekor módosítanunk kell az előző esetben használt parancsot, csak némi pontosítással:

Mysql -u felhasználónév -p -e "SELECT * FROM táblanév WHERE keresés" > elérési út és fájlnév

Amint érti, a kérésben meghatározott különféle pontosításokon túl az irányelv használatával AHOL, használhat más SQL-konstrukciókat is: CSATLAKOZIK, UNIÓ stb.

Bármilyen statisztikát gyűjthetsz :)

Ugyanezt a műveletet akkor is végrehajthatja, ha a MySQL parancssorban dolgozik a következő paranccsal:

SELECT * FROM adatbázis_tábla WHERE keresés INTO OUTFILE "elérési út és fájlnév";

Ez a parancs kifejezetten a mintavételi eredményeket tartalmazó fájlok létrehozására szolgál. Sőt, az eredmények nem csak fájlba exportálhatók, hanem változókba is írhatók, a kimeneti adatok pedig többféleképpen formázhatók.

Ha a fenti az Ön esete, akkor a parancs meghívásához szükséges paraméterek és opciók teljes listája itt található: https://dev.mysql.com/doc/refman/5.7/en/select-into.html

A mysqldump-pal kapcsolatos rövid kirándulásom befejezéseként egy parancsot szeretnék meghívni egy paraméterlistával a MySQL adatbázis és a táblák optimalizált kiíratásának létrehozásához, az adatbázis és az egyes táblák visszaállításához, amelyekből kevesebb időbe telik, mint rendszeres hívás:

mysqldump -u felhasználónév -h gazdagép_vagy_IP_MySQL_kiszolgáló -p --no-autocommit --opt adatbázis_neve > elérési_és_kiíratási_fájlnév;

A kísérlet kedvéért ezt az opciót egy 143 MB méretű MySQL adatbázis kiíratására használtam. Az ezt követő visszaállítás 59 másodpercet vett igénybe, szemben az 1 perc 3 másodperccel, amikor az adatbázist a mysqldump meghívásával készített kiíratból állítottuk vissza speciális paraméterek nélkül.

Egyetértek azzal, hogy ez apróság. De ez csak egy adott adatmennyiség esetén van így. Ha ezt a technikát használja, amikor 1 GB-nál nagyobb kiíratást hoz létre, a különbség jelentősebb lesz.

Ha ilyen helyzetbe ütközik, ne felejtse el először archiválni a MySQL adatbázis kiíratását. A legjobb a tar.gz. Ekkor a helyreállítás még kevesebb időt vesz igénybe.

Exportáljon adatokat a MySQL-ből Excel- és csv-fájlokba

Nem véletlenül egyesítettem egy blokkban a MySQL-ből származó információk ebbe a két formátumba történő kiadásával kapcsolatos információkat, mert... nagyon hasonlóak, hozzávetőlegesen ugyanúgy használatosak (az információk táblák formájában történő strukturálásához), és ugyanazok az exportálási parancsok lesznek meghívva.

Mint ismeretes, az egyetlen lényeges különbség ezek között a formátumok között, hogy az xls és xlsx kiterjesztések Microsoft Office Excelben készült fájlok találhatók, ami csak Windows alatt működik, míg a csv fájlok univerzálisabbak, és sok szerkesztőben lehetséges a műveletek velük.

Ez nem jelenti azt, hogy az xls nem nyílik meg sehol, kivéve a Microsoft Office Excelt. Ugyanez az OpenOffice megerősíti az ellenkezőjét.

De ahhoz, hogy ez lehetséges legyen, ennek a támogatásnak jelen kell lennie a szoftvertermékben. A csv fájlok még egy közönséges szövegszerkesztőben, például a Jegyzettömbben is olvashatók, de ez az űrlap nem lesz teljesen olvasható.

Hadd kezdjem azzal, hogy az SQL lekérdezések eredményeit csak xls-be vagy csv-be lehet exportálni, amivel korábban megtanultunk dolgozni, mert lehetetlen lesz egyetlen műveletben a teljes adatbázist egyetlen fájlba kiadni.

Először is ez nem optimális, mert... egy ilyen fájl valószínűleg nem nyílik meg, ha az adatbázisban nagy mennyiségű információ van tárolva. Másodszor pedig nem világos, hogyan lehet a fájlon belüli információkat táblázatokra és mezőkre felosztani.

Nem, ez természetesen lehetséges, de nem valószínű, hogy egyetlen paranccsal megtehető, és általában nem valószínű, hogy bárki megteszi ezt a konzolon. Úgy gondolom, hogy ezekhez a célokhoz speciális szoftverre vagy legalább egy szkriptre lesz szüksége.

Ha hirtelen megtudja, hogyan exportálhat információkat a teljes MySQL adatbázisból egy vagy több xls fájlba a konzolon egyszerre, akkor írja meg a megjegyzésekben. Szerintem sokak számára hasznos lesz az erről szóló olvasás.

Tehát, ha arról beszélünk, hogyan lehet adatokat exportálni a MySQL-ből xls-be és csv-be, akkor ezt közvetlenül a kiszolgálókonzolon lehet megtenni a segédprogramon keresztül. mysql vagy abban a munkában, amellyel előző cikkemben bemutattam.

Kezdjük sorban.

Az alábbi parancsokkal közvetlenül a szerverkonzolon exportálhat adatokat egy MySQL adatbázisból csv és xls formátumba.

Tovább Linux rendszerek:

Mysql -u felhasználónév -d adatbázis_neve -p -e "SELECT * FROM adatbázis_tábla;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > elérési út_és_fájl_neve. csv

Elvileg, ha feltétlenül szükséges, ezzel a paranccsal a MySQL adatokat Excel fájlba exportálhatja. De, hogy őszinte legyek, a gyakorlatban még nem foglalkoztam ezzel, és fogalmam sincs, mi fog kijönni a végén, mert... Jelenleg Windowson dolgozom. Ha ezt a parancsot Linux alatt használja, kérjük, írja meg a megjegyzésekben munkája eredményét. Szerintem mindenkit érdekelni fog az információ.

Tovább ablakok:

Sajnos az adatok exportálása MySQL táblákból csv-be a fenti paranccsal ebben az esetben nem fog működni, mert A Windows, a Linuxtól eltérően, nem rendelkezik beépített konzolparanccsal a szálakkal való munkához, mint például a sed a Linuxban.

Természetesen telepítheti, de túl sok gondot okoz. Alternatív megoldásként használhatja CygWin— Linux konzol emulátor Windows rendszerekhez.

Akkor jó, ha már telepítve van. Ellenkező esetben az adatok exportálása a MySQL adatbázisból a választott módszerrel túl sok gondot okoz.

De az információt xls fájlba kinyerni olyan egyszerű, mint 5 kopejka :) Nagyon könnyű elindítani a következő módon, amit személyesen is kipróbáltam:

Mysql -u felhasználónév -d adatbázis_neve -p -e "SELECT * FROM adatbázis_tábla;" > útvonal_és_fájl_neve.xls

Ez a fájl minden probléma nélkül megnyílt a Microsoft Office Excel programban. Az egyetlen dolog, hogy megnyitásakor egy üzenet jelent meg a képernyőn, amely arra figyelmeztet, hogy a megnyitott fájl tényleges formátuma eltér a megadott kiterjesztéstõl.

De a művelet megerősítésekor a dokumentum nehézség nélkül megnyílt - az összes információt cellákra osztották abban a formában, ahogyan azt magában a táblázatban tárolták.

Nem tudom, lehet, hogy ha valamilyen konkrét műveletet hajt végre a Microsoft Office Excelben, akkor a jövőben problémák merülnek fel; nem ástam ilyen mélyre. Amikor normálisan átnéztem az adatokat, legalábbis nem láttam semmi szokatlant.

Ha bármilyen problémába ütközik a MySQL-ből exportált xls fájl használata során, akár ebben a programban, akár más programokban, kérjük, jelezze nekem a megjegyzésekben.

A fent leírt módszerrel egy MySQL adatbázis tartalmát elvileg csv fájlba exportálhatjuk. Ekkor azonban a táblázat különböző mezőiből származó adatok tömegesen, határolók nélkül kerülnek kiírásra, ami nem biztos, hogy jól jelenik meg a különböző táblázatokkal való munkavégzésre szolgáló programokban, amelyek általában csv fájlokkal működnek.

Az OpenOffice-nak egyébként mindegy :) Automatikusan lehatárolta a MySQL adatbázis tartalmának xls-be való exportálása során kapott információkat. Nem tudom, hogy csinálja, de ajánlom a használatát :)

Nos, ugyanaz a Microsoft Office Excel megjelenítette a táblázatban egy rekordhoz tartozó összes információt, egyetlen cellába írva, határolók nélkül. Szerintem más táblázatszerkesztők is ezt fogják tenni.

Ezért, amikor egy MySQL adatbázist csv fájlokba exportál, ezt úgy kell megtennie, hogy az információkat a szerkesztők által érthető speciális karakterekkel választja el.

Aztán fokozatosan megközelítettem a MySQL adatok csv-be és xls-be történő exportálásának második módszerét, vagyis a MySQL parancssor használatát.

Tehát a MySQL adatok csv fájlba történő exportálásához a következő parancsra van szükségünk:

SELECT * FROM database_table INTO OUTFILE "elérési_és_fájl_neve.csv" MEZŐK VÉGEZÉSE: "," ZÁRJA """ SOROK VÉGEZÉSE: "\n";

Végrehajtása eredményeként a híváskor megadott elérési úton egy csv fájlt kap, amely a legtöbb modern táblázatszerkesztőben megfelelően megnyílik. Minden esetre emlékeztetem, hogy ezt a parancsot csak a MySQL adatbázishoz való csatlakozás után kell futtatnia.

Ez a parancs kiválóan alkalmas a MySQL adatok xls fájlba történő exportálására is a Microsoft Office Excelben való helyes megjelenítés érdekében. Csak ebben az esetben nincs szükségünk elválasztókra, mert zavarják az információ cellákra való felosztását:

SELECT * FROM adatbázis_táblázatból INTO OUTFILE "elérési_és_fájlnév.xls";

A gyakorlatban azonban nem minden olyan egyszerű, mint ahogy leírtam. A parancs futtatása közben a következő hibával találkozhat a konzolon, amely megakadályozza az exportálás befejezését:

1290-es HIBA (HY000): A MySQL szerver a --secure-file-priv paraméterrel fut, így nem tudja végrehajtani ezt az utasítást

Ezt az okozza, hogy a MySQL-kiszolgálót ezzel az opcióval indították el --secure-file-priv. Személy szerint azért találkoztam ezzel a problémával, mert a konzolban való munkához a WAMP OpenServer készletben található MySQL disztribúciós készletet használom, ami viszont így indítja el a MySQL szervert.

A probléma megoldásának két módja van:

  • Módosítsa a MySQL szerver indítási paramétereit
  • Módosítsa a végső MySQL exportfájl elérési útját

Az első módszer túl bonyolultnak tűnt számomra, mert... El kellene mélyednem az OpenServer konfigurációban, amit nem én írtam az összes ebből következő körülmény mellett 🙂 Ezért úgy döntöttem, hogy a második utat választom. Ha hasonló problémába ütközik, ismételje meg utánam.

Először a MySQL parancssorba kell lépnie, és futtassa a következő parancsok egyikét:

VÁLTOZÓK MUTATÁSA, MINT "biztonságos_fájl_priv"; SELECT @@GLOBAL.secure_file_priv;

Mindkettő végrehajtásának eredménye a MySQL globális változó értéke lesz biztonságos_fájl_priv, amely annak a könyvtárnak az elérési útját tartalmazza, amelyen keresztül MySQL adatexportálási és -importálási műveletek végezhetők (a jövőben egy adatimportálásról szóló cikk hivatkozása).

Azok. parancsok használatakor ADAT BETÖLTÉSÉs KIVÁLASZTÁS... OUTFILE-BE az exportált és importált fájlok csak ebben a könyvtárban találhatók.

Az én esetemben ez a változó általában erre volt beállítva NULLA, mert Ahogy már mondtam, az OpenServerben található disztribúcióból származó MySQL segédprogramokat használom a konzolban való munkához. Ez az érték azt jelzi, hogy a MySQL adatexportálási és -importálási műveletei a megadott parancsokkal teljesen bezártak.

Mint később kiderült, ez gyakori helyzet a dobozos WAMP és MAMP szerverek használatakor.

Sajnos az én esetemben nem lehetett használni a szokásos módszereket a MySQL globális változók értékeinek megváltoztatására:

SET változó_neve = érték;

Ennek eredményeként csak a következő hibát láttam a konzolon:

1238-as HIBA (HY000) az 1. sorban: A "secure_file_priv" változó egy csak olvasható változó.

Ennek eredményeként egy változó értékének megváltoztatásához biztonságos_fájl_privés nyissa meg az export és import műveleteket, be kellett mennem a mysql.ini MySQL konfigurációs fájlba, amely a MySQL disztribúció gyökérkönyvtárában található, vagy más módon is elérhető, ha a MySQL is benne van a WAMP/LAMP/ MAMP szerver felépítés.

Egyébként, ha meg szeretné változtatni a fájlcsere spool könyvtárának elérési útját, akkor ugyanezt kell tennie.

Az én esetemben ez a változó már létezett a konfigurációban, csak kommentált formában:

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

Ha nincs meg, akkor írja be a semmiből a rovatba (legalábbis nekem ott volt).

Nem kommentáltam, és úgy döntöttem, hogy abban a formában használom, ahogy írták. Azok. Amikor adatokat exportálunk a MySQL-ből és importálunk vissza, a fájljaim most egy könyvtárban lesznek tárolva c:\openserver\userdata\temp\.

A konfig megváltoztatása (egyébként bármelyik) után ne felejtse el újraindítani a szerverét vagy egy külön szolgáltatást, amelynek beállításait módosította, ha lehetséges, hogy a változtatások érvénybe lépjenek!

Az biztos, hogy a MySQL szerver újraindítása után jelenítse meg újra a változót biztonságos_fájl_privés másolja az értékét a vágólapra.

És most meg kell hívnunk a parancsot, mint az elején, csak annak a fájlnak a neve előtt, amelybe a MySQL adatbázisból származó információk mentésre kerülnek, írjuk be a megváltoztatandó változóban tárolt elérési utat a következő formában:

SELECT * FROM adatbázis_táblázatból INTO OUTFILE "biztonságos_fájl_priv_value\file_name.csv";

Ezek után az én esetemben működött az adatok exportálása a MySQL-ből.

Fontos pont! Ha MySQL-lel dolgozik Windows alatt, ne felejtse el a „\”-t „/”-re módosítani a fájl elérési útjának megadásakor, különben a hiba --secure-file-priv továbbra is megjelenik.

Ezzel a cikk a MySQL-adatbázis és tábláinak kiíratásával, valamint a MySQL-táblákból származó adatok különböző formátumokba történő kiírásával zárul. Írja meg véleményét a megjegyzésekben, és ossza meg mindenkivel a gyakorlatban leggyakrabban használt szkriptbeállításait.

Ha tetszett a cikk, megköszönheti a szerzőnek, ha újra közzéteszi a cikket a közösségi oldalakon, vagy anyagilag az alábbi űrlap segítségével tudja fizetni az alapvető tárhelyet.

Sok sikert mindenkinek és viszontlátásra! 🙂

P.S.: ha weboldalra van szüksége, vagy egy meglévőn módosítani kell, de erre nincs idő és kedv, akkor tudom ajánlani szolgáltatásaimat.

Több mint 5 év tapasztalat professzionális weboldal fejlesztés. Dolgozik vele PHP

Gyakran kérdezik tőlem, hogyan lehet nagy MySQL adatbázist importálni egy szerverre. Ismeretes, hogy a phpMyAdmin alapértelmezés szerint korlátozza az importált adatbázis méretét.

Ha a dump nem sokkal nagyobb, mint az elfogadható határ, akkor több részre bonthatja és több lépésben importálhatja. Ez akkor indokolt, ha például a korlát 2 MB, az adatbázis mérete pedig 5-10 MB. Nyilvánvaló, hogy egy 100 MB-os adatbázis 50 részre „vágása” meglehetősen munka- és időigényes folyamat.

A probléma megoldására több lehetőség is kínálkozik.

A webszerver konfigurációjának szerkesztése

VDS/VPS-en ezzel nincs különösebb probléma, csak a konfigurációt kell javítani. Nevezetesen, a php.ini-ben növelje meg a szerverre feltöltött fájlok megengedett maximális értékét, a POST módszerrel átvitt fájlok maximális méretét:

Post_max_size = 2000 millió feltöltési_maximális fájlméret = 2000 millió

Ezen túlmenően, ha az adatbázis nagyon nagy, növelje meg a maximális megengedett parancsfájl-végrehajtási időt.

Max_végrehajtási_idő = 32000 max_bemeneti_idő = 32000

És minden esetben növelheti a megengedett RAM mennyiségét:

Memória_korlát = 512M

A módosítások elvégzése után feltétlenül indítsa újra a webszervert.

Nyilvánvaló, hogy ez a módszer nem alkalmas virtuális tárhelyre, mert... ez nem jelenti a konfigurációk szerkesztésének lehetőségét.

Sypex dömper

Használhat harmadik féltől származó szoftvereket. És az első alkalmazás, amelyre érdemes odafigyelni, a Sypex Dumper.

Mivel sok évvel ezelőtt használtam először, és értékelem minden képességét és előnyeit, nyugodtan mondhatom, hogy „Kell rendelkeznie kell”. A Sypex Dumper egy PHP szerveralkalmazás, amely nem igényel telepítést. Elég, ha bemásolja például a webhelye gyökérkönyvtárába az sxd könyvtárba, és meghívja a böngészőben: http://Your_Site/sxd/. Érdemes megjegyezni, hogy először helyezze el az adatbázis kiíratását a biztonsági mentési könyvtárba. A szkript inicializálása után megjelenik az adatbázishoz való csatlakozás engedélyezési panelje. Adja meg felhasználónevét és jelszavát. A gazdagép és a port csak akkor választható, ha specifikusak.

Az engedélyezést követően közvetlenül az adatbázis importálásához léphet. A terepen "Adatbázis" ki lesz választva az adatbázis, amelyhez csatlakozik, és a mezőben "Fájl" látni fogja a korábban a Backup könyvtárba feltöltött kiíratást.

A legtöbb esetben nincs szükség további beállításokra, és biztonságosan elindíthatja az importálást a „Futtatás” gombra kattintva. Az importálás az adatbázis méretétől és az internetkapcsolat sebességétől függően eltarthat egy ideig. Az importálás során láthatja, hogy mely táblák vannak éppen importálva az adatbázisba. Amikor a szkript befejeződik, megjelenik a végrehajtási napló. Valahogy így néz ki:

Valójában ennyi – az adatbázis importálva van!

Konzol

Nem vesszük fontolóra a konzolon keresztüli importálást. Szerintem azok, akik nélkülem használják a konzolt, tudják, hogyan kell bármilyen adatbázist importálni. De jobb, ha a hétköznapi felhasználók speciális képzés nélkül nem mennek oda. Mivel egyes parancsok végrehajtása súlyos következményekkel járhat, beleértve a kiszolgáló teljes összeomlását is.

Végül

Nem állítom, hogy a Sydex Dumper az egyetlen és helyes megoldás. Vannak más elegánsabb módszerek is, amelyek megkövetelik a felhasználótól bizonyos ismereteket és megfelelő hozzáférést a szerver beállításaihoz.

De megosztott tárhely környezetben a Sydex Dumper minden bizonnyal nélkülözhetetlen asszisztens lesz.

Iratkozzon fel a táviratomra, és elsőként kapja meg az új anyagokat, beleértve azokat is, amelyek nem szerepelnek az oldalon.

Amikor egy webhelyet helyi szerverről tárhelyre viszünk át, az egyik kötelező eljárás az adatbázis exportálása/importálása. Ezért ebben a cikkben megpróbálom a lehető legrészletesebben leírni az adatbázis exportálásának és importálásának folyamatát egy helyi szerverről, azaz a webes felületről. PHPMyAdmin 3.2.3 verzió tárhelyhez.

Az első dolog, hogy elindít egy helyi szervert, jelen esetben a Denwert. A Denwer elindítása után meg kell nyitnia a böngészőt, és be kell írnia a böngésző sorába: "http://localhost/tools/phpmyadmin", majd megnyílik előtted egy ablak(1. ábra)korábban létrehozott adatbázisok.

1. ábra

Ezután ki kell választanunk az exportálandó adatbázist, esetemben ez egy Mybd nevű adatbázis. Egy adatbázist úgy választhat ki, hogy rákattint a böngészőablak bal oldalán, ahol az áll „Kérjük, válasszon adatbázist” (2. ábra).


2. ábra

A kívánt adatbázis kiválasztása után megnyílik egy ablak az adatbázis szerkezetével. A felső menüben van egy elem "Export" melynek segítségével az adatbázist számítógépre exportáljuk, majd importáljuk a tárhelyre. Tehát lépjen az „Exportálás” elemre (3. ábra).


3. ábra

A megnyíló ablakban néhány mérést kell végeznie (4. ábra), nevezetesen: az „Exportálás” blokkban ki kell jelölni az összes adatbázistáblát a tételre kattintva "Mindet kiválaszt"és jelölje be az elem melletti négyzetet SQL, ez az elem felelős az exportálandó fájl típusáért. Ezenkívül be kell jelölnie a mellette lévő négyzetet "Mentés fájlként", amely biztosítja, hogy az adatbázis fájlba kerüljön. Nincs szükség más beállítások módosítására, csak nyomja meg a gombot "Megy".

4. ábra

Most, ha mindent helyesen csinált, az adatbázisfájlnak le kell töltenie a számítógépére. Ezzel a fájllal importáljuk az adatbázist a tárhelyre.

Ezenkívül módosítania kell a fájl kódolását UTF-8-ra BOM nélkül, a kódolás megváltoztatásához szövegszerkesztőt használok Jegyzettömb++(Letöltés ) . Ezzel a programmal megnyitja az adatbázis fájlt és a menüben "Kódolás" választ „Átalakítás UTF-8-ra BOM nélkül” (5. ábra), majd mentse és zárja be.


5. ábra




Top