Kuinka varmuuskopioida MySQL-tietokanta PHP: llä
Etsitkö varmuuskopiota tietokannasta PHP-projekteihisi? On aina suositeltavaa varmuuskopioida tietokanta säännöllisesti. Näin tekemällä sivustosi tiedot ovat aina turvassa, jos tietokannassasi ilmenee ongelmia. Tässä artikkelissa näytämme, kuinka varmuuskopioida MySQL-tietokanta säännöllisesti ja tallentaa se palvelimellesi.
Tämä artikkeli on kirjoitettu projekteille, jotka ovat sisäänrakennettu PHP-ydin eikä CMS: ää tai Frameworkia. CMS: llä, kuten WordPress, on useita laajennuksia, kuten UpdraftPlus, tietokannan varmuuskopiointia varten. Laravel-verkkosivustoilla käyttäjä voi käyttää paketteja, kuten laravel-backup, samoihin tarkoituksiin.
Spatie- tiimi on kehittänyt paketin, joka on hyödyllinen tietokannan varmuuskopioinnissa PHP- ydinprojekteissa. Tämä paketti tukee MySQL: ää, PostgreSQL: ää, SQLite: tä ja MongoDB: tä. Keskustelemme MySQL-tietokannasta tässä artikkelissa. Katsotaanpa, miten tämä paketti toimii tietokannan varmuuskopioinnissa.
MySQL-tietokannan varmuuskopiointi PHP: n avulla
Ennen kuin jatkat, varmista, että sinulla on tietokannan kirjautumistiedot ja Composer on asennettu järjestelmään.
Seuraavaksi avaa pääte projektin juurihakemistossa ja asenna paketti suorittamalla alla oleva komento.
composer require spatie/db-dumper
Luo paketin asennuksen yhteydessä hakemisto db-backups
(voit antaa minkä tahansa nimen), johon voit tallentaa SQL-varmuuskopiotiedostot. Luo myös tiedosto backup-database.php
ja lisää siihen alla oleva koodi.
<?php
require_once "vendor/autoload.php";
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->dumpToFile('db-backups/'.time().'_dump.sql');
Muista korvata paikkamerkit todellisilla arvoilla. Yllä olevassa koodissa lisäimme nykyisen ajan SQL-tiedostoon pitämään erilliset tiedostojen nimet. Se tyhjentää tietokannan ja tallentaa sen annettuun SQL-tiedostoon.
Paketti antaa enemmän vaihtoehtoja samalla kun pudotat tietokannan. Voit esimerkiksi sulkea tietyt taulukot varmuuskopiosta toimittamalla poissulkevat taulukot -taulukon kuten alla.
<?php
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->excludeTables(['table1', 'table2', 'table3'])
->dumpToFile('db-backups/'.time().'_dump.sql');
Varmuuskopioi MySQL-tietokanta automaattisesti
Toistaiseksi sinulla on PHP-tiedosto, joka vie tietokannastasi varmuuskopion. Seuraava tehtävä on automatisoida varmuuskopiointi, jotta saat varmuuskopiot suorittamatta komentosarjaa manuaalisesti.
Kun isännöit sivustoa palvelimella, palveluntarjoajasi antaa sinulle cPanelin, jossa näet verkkosivuston hallinnan perus- ja lisäasetukset. Yksi heidän tarjoamansa ominaisuus on "Cron Jobs". Cron-töiden avulla voit suorittaa tietyn komentosarjan (PHP-tiedosto) tietyllä aikavälillä taustalla. Sinun tarvitsee vain asettaa intervalli ja siirtää PHP-tiedoston hakemistopolku. Tämän jälkeen palvelimesi suorittaa komentosarjan taustalla määrätyin väliajoin.
Määritä Cron kirjautumalla cPaneliin ja napsauttamalla ‘Cron Jobs’, jonka saatat löytää Advanced-osiosta.
Valitse seuraavalla sivulla Lisää uusi asiakastyö -osiossa avattavaksi Yhteiset asetukset -valikosta Kerran päivässä. Se tarkoittaa, että komentosarjasi suoritetaan kerran päivässä. Käyttäjä voi asettaa minkä tahansa aikavälin vaatimuksesta riippuen.
Siirrä komento-osassa PHP-tiedoston polku seuraavasti:
php /home/username/public_html/backup-database.php
Säädä komentosarjojen polku isännöintikokoonpanojesi mukaan ja lähetä se. Tämän jälkeen palvelimesi alkaa suorittaa komentosarjaa päivittäin keskiyöllä. Ja tämä komentosarja tallentaa MySQL-tietokannasi automaattisesti määritettyyn hakemistoon (esim. Db-varmuuskopiot).
Toivomme, että ymmärrät kuinka tehdä MySQL-tietokannan varmuuskopiointi PHP: ssä ja automatisoida prosessi Cronin avulla. Haluamme kuulla ajatuksesi tai ehdotuksesi alla olevassa kommenttiosassa.