...
✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur du säkerhetskopierar din MySQL-databas med PHP

40

Vill du ta backup av databasen i dina PHP-projekt? Det rekommenderas alltid att säkerhetskopiera din databas regelbundet. Om du gör det kommer dina webbplatsdata alltid att vara säkra om det uppstår problem i din databas. I den här artikeln visar vi hur du säkerhetskopierar MySQL-databasen regelbundet och lagrar den på din server.

Den här artikeln är skriven för de projekt som är inbyggda PHP-kärnor och inte med något CMS eller Framework. CMS som WordPress har flera plugins tillgängliga som UpdraftPlus för säkerhetskopiering av databasen. På Laravels webbplatser kan användaren använda paket som laravel-backup för samma ändamål.

Spatie- teamet har utvecklat paketet som är användbart för att ta backup av databaser i centrala PHP-projekt. Detta paket ger stöd för MySQL, PostgreSQL, SQLite och MongoDB. Vi kommer att diskutera MySQL-databasen i den här artikeln. Med det sagt, låt oss ta en titt på hur detta paket fungerar för att säkerhetskopiera din databas.

MySQL-databasbackup med PHP

Innan du fortsätter, se till att du har dina databasuppgifter och att Composer är installerat på ditt system.

Öppna sedan terminalen i din projektkatalog och kör kommandot nedan för att installera paketet.

composer require spatie/db-dumper

Vid paketinstallation skapar du en katalog db-backups(du kan ange vilket namn som helst) där du kan lagra dina SQL-säkerhetskopior. Skapa också en fil backup-database.phpoch lägg till koden nedan i den.

<?php
require_once "vendor/autoload.php";
 
SpatieDbDumperDatabasesMySql::create()
    ->setDbName('DB_NAME')
    ->setUserName('DB_USER_NAME')
    ->setPassword('DB_PASSWORD')
    ->dumpToFile('db-backups/'.time().'_dump.sql');

Se till att ersätta platshållare med de faktiska värdena. I koden ovan bifogade vi aktuell tid till SQL-filen för att behålla olika filnamn. Det kommer att dumpa din databas och lagra den i den angivna SQL-filen.

Paketet ger fler alternativ när du dumpar databasen. Till exempel kan du utesluta specifika tabeller från säkerhetskopiering genom att ange uteslutningstabellmatrisen enligt nedan.

<?php
SpatieDbDumperDatabasesMySql::create()
    ->setDbName('DB_NAME')
    ->setUserName('DB_USER_NAME')
    ->setPassword('DB_PASSWORD')
    ->excludeTables(['table1', 'table2', 'table3'])
    ->dumpToFile('db-backups/'.time().'_dump.sql');

Säkerhetskopiera automatiskt MySQL-databas

Hittills har du en PHP-fil som tar backup av din databas. Nästa sak som behöver göras är att automatisera säkerhetskopieringsprocessen så att du får dina säkerhetskopior utan att skriptet körs manuellt.

När du var värd för webbplatsen på servern ger din värdleverantör dig cPanel där du kan se de grundläggande och avancerade alternativen för hantering av webbplatsen. En funktion som de tillhandahöll är "Cron Jobs". Med Cron-jobb kan du köra ett visst skript (PHP-fil) med ett visst intervall i bakgrunden. Allt du behöver göra är att ställa in ett intervall och skicka en katalogsökväg till PHP-filen. Efter detta kör din server ditt skript i bakgrunden med angivna intervall.

För att ställa in en Cron, logga in på din cPanel och klicka på "Cron Jobs" som du kan hitta under avsnittet "avancerad".

Hur du säkerhetskopierar din MySQL-databas med PHP

På nästa sida under avsnittet "Lägg till ett nytt kronjobb" väljer du "En gång per dag" för "Vanliga inställningar". Det betyder att ditt skript körs en gång om dagen. Användaren kan ställa in valfritt intervall beroende på behovet.

Hur du säkerhetskopierar din MySQL-databas med PHP

I kommandot avsnittet skicka PHP-filens sökväg enligt följande:

php /home/username/public_html/backup-database.php

Justera skriptsökvägen enligt dina värdkonfigurationer och skicka den. Efter detta börjar din server köra ett skript dagligen vid midnatt. Och detta skript lagrar automatiskt din MySQL-databas i den angivna katalogen (t.ex. db-säkerhetskopior).

Vi hoppas att du förstår hur du gör backup av MySQL-databasen i PHP och automatiserar processen med Cron. Vi vill höra dina tankar eller förslag i kommentarsektionen nedan.

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer