Kuidas varundada MySQL-i andmebaasi PHP abil
Kas otsite oma PHP-projektides andmebaasi varundamist? Alati on soovitatav andmebaasi perioodiliselt varundada. Seda tehes on teie saidi andmed alati ohutud, kui teie andmebaasis ilmneb probleeme. Selles artiklis näitame teile, kuidas MySQL-i andmebaasi perioodiliselt varundada ja oma serverisse salvestada.
See artikkel on kirjutatud projektide jaoks, mis on sisseehitatud PHP tuum ja mitte ühegi CMSi ega raamistikuga. CMS-il nagu WordPressil on andmebaasi varundamiseks saadaval mitu pistikprogrammi, näiteks UpdraftPlus. Laraveli veebisaitidel saab kasutaja samadel eesmärkidel kasutada selliseid pakette nagu laravel-backup.
Spatie meeskond on välja töötanud paketi, mis on kasulik andmebaasi varundamiseks PHP põhiprojektides. See pakett toetab MySQL, PostgreSQL, SQLite ja MongoDB. Me käsitleme MySQL-i andmebaasi selles artiklis. Sellest hoolimata vaatame, kuidas see pakett teie andmebaasi varundamisel töötab.
MySQL andmebaasi varundamine PHP abil
Enne edasist jätkamist veenduge, et teie andmebaasi mandaadid oleksid olemas ja Composer oleks teie süsteemi installitud.
Järgmisena avage terminal oma projekti juurkataloogis ja käivitage paketi installimiseks järgmine käsk.
composer require spatie/db-dumper
Paketi installimisel looge kataloog db-backups
(võite anda mis tahes nime), kuhu saate oma SQL-i varukoopiad salvestada. Looge ka fail backup-database.php
ja lisage sellesse allolev kood.
<?php
require_once "vendor/autoload.php";
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->dumpToFile('db-backups/'.time().'_dump.sql');
Asendage kohatäited tegelike väärtustega. Ülalolevas koodis lisasime praeguse kellaaja SQL-failile, et hoida eraldi failinimesid. See loob teie andmebaasi ja salvestab selle antud SQL-faili.
Pakett annab andmebaasi viskamise ajal rohkem võimalusi. Näiteks võite varundamisest välja jätta kindlad tabelid, pakkudes välistavate tabelite massiivi nagu allpool.
<?php
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->excludeTables(['table1', 'table2', 'table3'])
->dumpToFile('db-backups/'.time().'_dump.sql');
Varundage MySQL-i andmebaas automaatselt
Siiani on teil PHP-fail, mis viib teie andmebaasi varukoopia. Järgmine asi, mida tuleb teha, on varundamisprotsessi automatiseerimine, et saaksite varukoopiad ilma skripti käsitsi käivitamata.
Kui hostite saiti serveris, annab teie hostiteenuse pakkuja teile cPaneli, kus näete veebisaidi haldamise põhi- ja täpsemaid valikuid. Üks nende pakutav funktsioon on "Cron Jobs". Croni tööd võimaldavad teil taustal kindla intervalliga käivitada kindlat skripti (PHP-faili). Kõik, mida peate tegema, on intervalli määramine ja PHP-faili kataloogitee edastamine. Pärast seda käivitab teie server teie skripti kindlaksmääratud intervallidega taustal.
Croni määramiseks logige sisse oma cPaneli ja klõpsake „Cron Jobs", mille leiate jaotisest „Täpsem”.
Järgmisel lehel jaotise „Uue kronptöö lisamine” all valige rippmenüü „Ühised seaded” valik „Üks kord päevas”. See tähendab, et teie skripti käitatakse üks kord päevas. Kasutaja saab sõltuvalt nõudest määrata mis tahes intervalli.
Käskude jaotises edastage PHP-faili tee järgmiselt:
php /home/username/public_html/backup-database.php
Kohandage skripti rada vastavalt oma hostimiskonfiguratsioonidele ja esitage see. Pärast seda hakkab teie server skripti täitma iga päev keskööl. Ja see skript salvestab teie MySQL-i andmebaasi automaatselt määratud kataloogi (nt db-varukoopiad).
Loodame, et mõistate, kuidas MySQL-i andmebaasi PHP-s varundada ja protsessi Croni abil automatiseerida. Soovime kuulda teie mõtteid või ettepanekuid allpool olevas kommentaaride jaotises.