Android

A mysql adatbázisok biztonsági mentése és visszaállítása a mysqldump segítségével

cPanel mentés készítése, visszaállítása

cPanel mentés készítése, visszaállítása

Tartalomjegyzék:

Anonim

Ez az oktatóanyag elmagyarázza, hogyan lehet biztonsági másolatot készíteni és visszaállítani a MySQL vagy a MariaDB adatbázisokat a parancssorból a mysqldump segédprogrammal.

A mysqldump segédprogrammal létrehozott biztonsági mentési fájlok alapvetően SQL utasítások halmaza, amelyek felhasználhatók az eredeti adatbázis újbóli létrehozására. A mysqldump parancs fájlokat generálhat CSV és XML formátumban is.

A mysqldump segédprogrammal is átviheti MySQL adatbázisát egy másik MySQL szerverre.

Mysqldump Command Syntax

Mielőtt megvizsgálnánk a mysqldump parancs használatát, kezdjük meg az alapszintaxis áttekintésével.

A mysqldump segédprogram kifejezései a következők:

mysqldump > file.sql

  • options - a mysqldump options file.sql - A dump (biztonsági másolat) fájl

A mysqldump parancs használatához a MySQL szervernek hozzáférhetőnek és futónak kell lennie.

Biztonsági másolat készítése egyetlen MySQL adatbázisból

A mysqldump eszköz leggyakoribb használata egyetlen adatbázis biztonsági mentése.

Például, ha biztonsági másolatot készít az adatbázis_neve database_name , a felhasználói root felhasználásával, és elmentheti az adatbázis_neve.sql nevű fájlba, akkor a következő parancsot futtassa:

mysqldump -u root -p database_name > database_name.sql

A rendszer felkéri a gyökérjelszó megadására. A sikeres hitelesítés után a dump folyamat megkezdődik. Az adatbázis méretétől függően a folyamat némi időt vehet igénybe.

mysqldump database_name > database_name.sql

Több MySQL adatbázis biztonsági mentése

Több MySQL adatbázis biztonsági másolatának készítéséhez egy paranccsal a --database opciót kell használni, majd a biztonsági másolatot --database adatbázisok listáját. Az egyes adatbázisneveket szóközzel kell elválasztani.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

A fenti parancs létrehoz egy dump fájlt, amely mindkét adatbázist tartalmazza.

Az összes MySQL adatbázis biztonsági mentése

Használja a --all-databases beállítást az összes MySQL adatbázis biztonsági --all-databases :

mysqldump -u root -p --all-databases > all_databases.sql

Ugyanúgy, mint az előző példában, a fenti parancs egyetlen dump fájlt hoz létre, amely tartalmazza az összes adatbázist.

Biztonsági másolat készítése az összes MySQL adatbázisról a fájlok elkülönítésére

A mysqldump segédprogram nem nyújt lehetőséget az összes adatbázis biztonsági mentésére fájlok különválasztására, de ezt egyszerű bash FOR hurok segítségével elérhetjük:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done

A fenti parancs különálló dump fájlt hoz létre minden adatbázishoz, az adatbázis nevét használja fájlnévként.

Hozzon létre egy tömörített MySQL adatbázis-biztonsági mentést

Ha az adatbázis mérete nagyon nagy, akkor érdemes a kimenetet tömöríteni. Ehhez egyszerűen csatolja a kimenetet a gzip segédprogramhoz, és irányítsa át egy fájlba az alább látható módon:

mysqldump database_name | gzip > database_name.sql.gz

Hozzon létre biztonsági másolatot az időbélyegzővel

mysqldump database_name > database_name-$(date +%Y%m%d).sql

A fenti parancs létrehoz egy fájlt a következő formátumban: database_name-20180617.sql

MySQL dump visszaállítása

A MySQL fájlt visszaállíthatja a mysql eszköz segítségével. A parancs általános szintaxisa a következő:

mysqld database_name < file.sql

A legtöbb esetben létre kell hoznia egy adatbázist az importálásra. Ha az adatbázis már létezik, először törölnie kell azt.

A következő példában az első parancs egy adatbázis_nevet tartalmazó database_name hoz létre, majd az database_name.sql dumpot importálja bele:

mysql -u root -p -e "create database database_name"; mysql -u root -p database_name < database_name.sql

Visszaállíthat egyetlen MySQL adatbázist a teljes MySQL dumpból

mysql --one-database database_name < all_databases.sql

MySQL adatbázis exportálása és importálása egyetlen parancsban

Ahelyett, hogy dömpingelt fájlt hozna létre az egyik adatbázisból, majd a biztonsági másolatot importálja egy másik MySQL adatbázisba, a következő egysoros felhasználhatja:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

A fenti parancs átadja a kimenetet a mysql kliensnek a távoli gazdagépen, és importálja azt egy remote_database_name nevű adatbázisba. A parancs futtatása előtt ellenőrizze, hogy az adatbázis már létezik-e a távoli szerveren.

Automatizálja a biztonsági mentéseket a Cron segítségével

Az adatbázisok biztonsági mentési folyamatának automatizálása ugyanolyan egyszerű, mint egy cron job létrehozása, amely a mysqldump parancsot megadott időpontban futtatja.

A MySQL adatbázis automatikus biztonsági másolatának cronjob használatával történő beállításához kövesse az alábbi lépéseket:

  1. Hozzon létre egy .my.cnf nevű fájlt a felhasználói otthoni könyvtárban:

    sudo nano ~/.my.cnf

    Másolja és illessze be a következő szöveget a.my.cnf fájlba.

    user = dbuser password = dbpasswd

    Ne felejtsd el kicserélni a dbuser és a dbpasswd az adatbázis felhasználójára és a jelszavára.

    Korlátozza a hitelesítő adatok fájljának engedélyeit, hogy csak a felhasználó férjen hozzá ehhez:

    chmod 600 ~/.my.cnf

    Hozzon létre egy könyvtárat a biztonsági mentések tárolására:

    mkdir ~/db_backups

    Nyissa meg a felhasználói crontab fájlt:

    crontab -e

    Adja hozzá a következő cron feladatot, amely minden nap 3 óráig biztonsági másolatot készít a mydb adatbázis mydb :

    0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql

    Ne felejtsd el a username a tényleges felhasználónévvel cserélni.

Hozzon létre egy újabb cronjob-ot a 30 naposnál régebbi mentések törléséhez:

find /path/to/backups -type f -name "*.sql" -mtime +30 -delete

Természetesen a parancsot a biztonsági mentési hely és a fájlnevek szerint kell beállítania. Ha többet szeretne tudni a find parancsról, olvassa el a Hogyan keressünk fájlokat Linuxban a parancssori útmutató segítségével című részt.

Következtetés

Ez az oktatóanyag csak az alapokat tartalmazza, de jó kezdés lehet mindenkinek, aki meg akarja tanulni, hogyan kell a mysqldump segédprogrammal létrehozni és visszaállítani a MySQL adatbázisokat a parancssorból.

Ellenőrizheti azt is, hogy miként állíthat vissza egy MySQL root jelszót arra az esetre, ha elfelejtette.

mysql mariadb backup mysqldump