Hvordan sikkerhetskopiere MySQL-database automatisk ved hjelp av PHP

Hvordan Sikkerhetskopiere Mysql Database Automatisk Ved Hjelp Av Php



MySQL er en åpen kildekode RDBMS som effektivt kan opprette, administrere og lagre store datamengder på en strukturert måte. For å sikre sikkerheten til dataene er sikkerhetskopiering av databasen en viktig oppgave. MySQL støtter mange språk, så for å lage en sikkerhetskopi av en MySQL-database kan brukeren skrive skriptet i PHP, som er et kraftig skriptspråk.

Denne artikkelen vil diskutere hvordan du lager en sikkerhetskopi av en MySQL-database ved hjelp av PHP og automatiserer prosessen med sikkerhetskopiering.

Sikkerhetskopier automatisk MySQL-database ved hjelp av PHP

For å skrive PHP-kode, åpne et hvilket som helst koderedigeringsprogram. For dette innlegget, ' Visual Studio-kode ' blir brukt:









Lag en PHP-fil med navnet ' db_backup.php ':







Skriv inn denne koden og oppgi din MySQL-databaselegitimasjon:

definere ( 'DB_HOST' , 'din_mysql_vert' ) ;

definere ( 'DB_USER' , 'ditt_mysql_brukernavn' ) ;

definere ( 'DB_PASS' , 'ditt_mysql_passord' ) ;

definere ( 'DB_NAME' , 'ditt_databasenavn' ) ;

Definer sikkerhetskopieringskatalogen, hvor sikkerhetskopifilene skal lagres:



definere ( 'BACKUP_DIR' , '/bane/til/din/sikkerhetskopi/katalog' ) ;

Still inn datoformatet for navnet på sikkerhetskopifilen:

$date = date('Y-m-d_H-i-s');

Definer ' backup_fil ':

$backup_file = BACKUP_DIR . '/'. DB_NAME . '-'. $date . '.sql';

For å lage en sikkerhetskopifil, bruk mysqldump-verktøyet og oppgi databaselegitimasjonen:

$command = 'mysqldump --user='.DB_USER.' --password='.DB_PASS.' '.DB_NAME.' > '.$backup_file;

system($kommando);

Komprimer sikkerhetskopifilen ved å bruke ' gzip ' verktøy:

$gzip_command = 'gzip '.$backup_file;

system($gzip_kommando);

Skriv inn denne kodebiten for å fjerne de gamle sikkerhetskopifilene, for dette innlegget er filene ' 7 ' dager gamle vil bli slettet:

$find_command = 'finn '.BACKUP_DIR.' -type f -name '*.gz' -mtime +7 -delete';

system($finn_kommando);

Lagre filen, og kjør den for å bekrefte om sikkerhetskopifilen er opprettet eller ikke. Åpne koderedigeringsterminalen og skriv inn kommandoen for å utføre filen:

php .\db_backup.php

List opp katalogen for å se om sikkerhetskopifilen eksisterer. Utdataene viser sikkerhetskopifilen som er opprettet:

For å automatisere prosessen med sikkerhetskopiering, åpne startmenyen, søk ' Oppgaveplanlegger ' og klikk på ' Åpen ”-knapp:

Fra ' Handlinger ' og trykk på ' Opprett oppgave alternativ:

En ny veiviser åpnes. Gå inn i ' Generell '-fanen og oppgi oppgavens navn. Velg alternativet som sikrer sikkerhetskopieringen selv om brukeren er logget ut:

Naviger til ' Utløsere '-fanen og trykk på ' Ny ”-knapp:

Velg alternativet ' På en timeplan '. Velg planlagt tid som ' Daglig ' og juster ' Start ' tid. I Avanserte innstillinger sjekk ' Aktivert '-alternativet og trykk på ' OK ”-knapp:

Statusen vil endres til ' Aktivert ':

Velg ' Handlinger '-fanen og klikk på ' Ny ”-knapp:

Skriv inn navnet for 'Handling' og bla etter ' Program/manus ' PHP-fil du opprettet og ' Legg til argumenter ' og klikk på ' OK ':

Handlingen vil bli opprettet:

Gå til ' Forhold '-fanen og merk av for ' Vekk datamaskinen for å gni denne oppgaven ':

I « Innstillinger '-fanen og velg alternativene som vises i utdataene og juster tiden for omstart og klikk på ' OK ”-knapp:

Spørsmålet vises, skriv inn legitimasjonen og klikk på ' OK ”-knapp:

Din MySQL-database vil automatisk sikkerhetskopiere. Sjekk sikkerhetskopikatalogen for å se sikkerhetskopifilene ved behov:

Du har opprettet PHP-filen for å sikkerhetskopiere MySQL-databasen, for deretter å automatisere sikkerhetskopieringsprosessen du brukte Oppgaveplanleggeren.

Konklusjon

Bruk koderedigeringsprogrammet til å lage en PHP-fil, oppgi MySQL-databaselegitimasjonen og sikkerhetskopieringsfilnavnformat og datoformat. Bruk mysqldump-kommandoen til å lage en SQL-fil og gzip-verktøy for å komprimere SQL-filen. Bruk Task Scheduler for automatisering av sikkerhetskopieringsprosessen. Dette innlegget demonstrerte hvordan du automatisk sikkerhetskopierer en MySQL-database ved hjelp av PHP.