Mi az a mysqldump, és hogyan használhatom?

Tartalomjegyzék:

Mi az a mysqldump, és hogyan használhatom?
Mi az a mysqldump, és hogyan használhatom?
Anonim

Az egyik vezető szabadon elérhető adatbázisként a MySQL népszerű választás számos webalkalmazás számára. Mivel ki van téve az internetnek, az alkalmazás rosszindulatú támadásoknak van kitéve. Ha a szerver veszélybe kerül, a legjobb esetben újra kell telepítenie az alkalmazást; legrosszabb esetben elveszítheti adatait. Ezenkívül előfordulhat, hogy egy adatbázist kell áttelepítenie egyik szerverről a másikra.

Mire használható a mysqldump?

A mysqldump eszköz mind a szerver kompromittálási, mind az áttelepítési helyzetekre fedezetet nyújt. Alapvető funkciója egy MySQL adatbázis elővétele és szövegfájlként történő kiírása. De nem akármilyen szövegfájl; a fájl SQL utasítások halmaza. Ezek az utasítások végrehajtásukkor rekonstruálják az adatbázist pontosan arra az állapotra, amelyben a dump végrehajtásakor volt.

Használja a mysqldump-ot egy adatbázis exportálásához biztonsági másolatként, vagy amikor az adatbázist új gazdagépre helyezi át. Mindkét esetben a szöveges fájl vissza lesz importálva egy MySQL adatbázis-kiszolgálóra. Ez végrehajtja a fájlban található összes SQL utasítást, ami visszaállítja az adatbázist az eredeti állapotába. Ez a rész nem használja a mysqldump parancsot, de ez a segédprogram nélkül sem lenne lehetséges.

A MySQL dokumentumok más módszereket is felsorolnak a biztonsági mentések készítésére, de ezeknek vannak hátrányai:

  • Az adatbázis gyorsmásolása a MySQL Enterprise rendszerből nagyszerű módja ezeknek a biztonsági mentéseknek – ha nem bánja az Enterprise árcédulát.
  • Az adatbázis-adatkönyvtárak másolása bonyolult lehet az operációs rendszerek közötti váltáskor, mivel a célállomások eltérőek lesznek.
  • Egy körülhatárolt szövegfájlba exportálva megkapja a tartalmat, de újra kell létrehoznia a szerkezetet.
  • Gyakran készíthet biztonsági másolatot az adatbázisokról olyan grafikus felhasználói felületi programokból, mint a MySQL Workbench. De ez egy kézi folyamat; nem olyasmi, amit leírhat vagy beilleszthet egy kötegelt munkába.

Telepítse a mysqldump eszközt

Windows esetén tekintse meg a MySQL Windows 7 rendszerre történő telepítésére vonatkozó utasításainkat (a telepítési folyamat ugyanaz a Windows 10 rendszeren). MacOS rendszeren tekintse meg a MySQL-nek a macOS 10.7-re való telepítésére vonatkozó utasításainkat (ismét, régebbi, de továbbra is alkalmazható). Az Ubuntu alapú Linux rendszerek felhasználói a következő paranccsal telepíthetik a MySQL klienst és a segédprogramokat:

sudo apt install mysql-client

MySQL dump kibontása

A telepítés után a mysqldump segítségével készítsen teljes biztonsági másolatot az adatbázisról.

mysqldump -h [a DB gazdagép neve vagy IP-címe] -u [a DB felhasználó neve] -p [az adatbázis neve] > db_backup.sql

Íme a parancsban használt jelzők leírása:

  • - h: Ez a jelző az adatbázis gazdagépe. Ez lehet egy teljes gazdagépnév (például myhost.domain.com) vagy egy IP-cím. Hagyja üresen, ha a parancsot ugyanazon a gazdagépen futtatja, mint a MySQL szerver.
  • - u: Az Ön felhasználóneve.
  • - p: Ha megfelelően biztosította a MySQL telepítését, jelszóra lesz szüksége a csatlakozáshoz. Ez az argumentum nélküli jelző jelszót kér a parancs végrehajtásakor. Néha hasznos a jelszót közvetlenül megadni a jelző argumentumaként, például egy biztonsági másolatban. De a felszólításnál nem szabad, mert ha valaki hozzáfért a számítógépéhez, megkaphatja ezt a jelszót a parancselőzményekben.
  • > db_backup.sql: Ez a rész utasítja a mysqldump-ot, hogy a kimenetét egy fájlba irányítsa. Általában a parancs mindent kiír a konzolra, ami azt jelenti, hogy több SQL utasítást fog látni a képernyőn. A > szimbólum a kimenetet a megnevezett szövegfájlba továbbítja. Ha ez a fájl nem létezik, akkor automatikusan létrejön.

Amikor elkészült, lesz egy. SQL-fájlja. Ez egy SQL utasításokat tartalmazó szövegfájl. Bármely szövegszerkesztőben megnyithatja a tartalom ellenőrzéséhez. Íme, egy WordPress-adatbázisból származó export, amely megmutatja, hogyan vannak összerakva ezek a fájlok.

Image
Image

A fájl szakaszokra van osztva. Az első rész a WordPress-megjegyzések táblázatát állítja be. A második szakasz újra létrehozza a táblák tartalmát (ebben a példában a megjegyzésrekordokat). A MySQL dump újraimportálásakor a parancs a fájlon keresztül működik, végrehajtja az utasításokat, és újra összeállítja az adatbázist úgy, ahogy volt.

MySQL dump fájl importálása

Mielőtt importálná a dump fájlt, szüksége lesz egy már létrehozott adatbázisra, valamint annak érvényes felhasználónevére és jelszavára. Ezenkívül rendelkeznie kell az adatbázishoz szükséges összes jogosultsággal. Nincs szüksége a GRANT engedélyre, de egyszerűbb megadni mindet.

Tudjon meg többet az adatbázis-engedélyekről, mielőtt módosítaná a biztonsági szerepköröket az adatbázison belül.

Az adatok újraimportálásához jelentkezzen be a MySQL szerverre a mysql paranccsal. Írja be a use [adatbázis neve] parancsot a promptba, és helyettesítse az adatbázis nevét. Írja be a source [fájlnév] kódot, és cserélje ki a korábban készített dump fájl nevét.

Ha végzett, megjelenik egy üzenetlista, amely jelzi, hogy az SQL utasítások végrehajtása folyamatban van. Tartsa szemmel a hibákat, de ha rendelkezik a megfelelő engedélyekkel, akkor minden rendben lesz.

Image
Image

A folyamat befejeztével megkapja az eredeti adatbázis másolatát. Az adatbázisok közötti hasonlóság ellenőrzéséhez hajtson végre egy másik kiíratást, majd hasonlítsa össze a két kimenetet. A két fájl összehasonlításához használjon szövegszerkesztőt vagy külön differenciáló eszközt.

Image
Image

Két különbség van ezek között a fájlok között, amelyeket a jobb oldali görgetősáv tetején és alján lévő piros vonalak mutatnak. Az első az adatbázis nevét tartalmazó sor, és ez más, mert a fájlok elnevezése eltérő. A második a dump fájl időbélyege. Ez azért más, mert a második adatbázist az első után hozták létre újra. Ellenkező esetben a fájlok teljesen azonosak, vagyis az őket előállító adatbázisok is azok.

GYIK

    Hogyan javítható a mysqldump hiba: A hozzáférés megtagadva zárolási táblák használatakor?

    Kérje meg adatbázis-adminisztrátorát, hogy adja meg a LOCK jogosultságot. Ha ez nem oldja meg a problémát, próbálja meg futtatni ugyanazt a mysqldump parancsot a - -single-transaction jelző hozzáadásával, például [ $ mysqldump --single-transaction] [-u felhasználó] [-p DBNAME] > backup.sql

    Használhat "hol" záradékot a mysqldump-pal?

    Használjon WHERE záradékot olyan biztonsági másolat készítésekor, amely csak az adott feltételnek megfelelő sorokat tartalmazza. Például, ha csak a 100-nál nagyobb azonosító oszlopból kíván adatokat kiírni, írja be a következőt: "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql.

Ajánlott: