Sådan sikkerhedskopieres MySQL-database automatisk ved hjælp af PHP

Sadan Sikkerhedskopieres Mysql Database Automatisk Ved Hjaelp Af Php



MySQL er et open source RDBMS, der effektivt kan skabe, administrere og gemme enorme mængder data på en struktureret måde. For at sikre datasikkerheden er sikkerhedskopiering af databasen en vigtig opgave. MySQL understøtter mange sprog, så for at lave en backup af en MySQL-database kan brugeren skrive scriptet i PHP, som er et kraftfuldt scriptsprog.

Denne artikel vil diskutere, hvordan man opretter en sikkerhedskopi af en MySQL-database ved hjælp af PHP og automatiserer processen med backup.

Sikkerhedskopier automatisk MySQL-database ved hjælp af PHP

For at skrive PHP-kode skal du åbne en hvilken som helst kodeeditor. Til dette indlæg, ' Visual Studio kode ' bliver brugt:









Opret en PHP-fil med navnet ' db_backup.php ”:







Indtast denne kode og angiv dine MySQL-databaselegitimationsoplysninger:

Definere ( 'DB_HOST' , 'din_mysql_host' ) ;

Definere ( 'DB_USER' , 'dit_mysql_brugernavn' ) ;

Definere ( 'DB_PASS' , 'dit_mysql_adgangskode' ) ;

Definere ( 'DB_NAME' , 'dit_databasenavn' ) ;

Definer sikkerhedskopieringsmappen, hvor sikkerhedskopieringsfilerne skal gemmes:



Definere ( 'BACKUP_DIR' , '/sti/til/din/sikkerhedskopi/mappe' ) ;

Indstil datoformatet for navnet på backupfilen:

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

Definer ' backup_fil ”:

$backup_file = BACKUP_DIR . '/'. DB_NAME . '-'. $dato ​​. '.sql';

Brug mysqldump-værktøjet til at oprette en sikkerhedskopi og angiv databaselegitimationsoplysningerne:

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

system($kommando);

Komprimer backup-filen ved at bruge ' gzip 'værktøj:

$gzip_command = 'gzip '.$backup_fil;

system($gzip_kommando);

Indtast dette stykke kode for at fjerne de gamle backup-filer, for dette indlæg er de filer, der er ' 7 ” dage gamle slettes:

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

system($find_kommando);

Gem filen, og kør den for at bekræfte, om backupfilen er oprettet eller ej. Åbn koderedigeringsterminalen og skriv kommandoen for at udføre filen:

php .\db_backup.php

List mappen for at se, om sikkerhedskopifilen findes. Outputtet viser den sikkerhedskopifil, der er oprettet med succes:

For at automatisere processen med backup skal du åbne startmenuen, søge ' Opgaveplanlægger ' og klik på ' Åben ” knap:

Fra ' Handlinger ' og tryk på ' Opret opgave ' mulighed:

En ny guide åbnes. Gå ind i ' Generel ' fanen og angiv opgavens navn. Vælg den mulighed, der sikrer backup, selvom brugeren er logget ud:

Naviger til ' Udløsere ' fanen og tryk på ' Ny ” knap:

Vælg muligheden ' På et skema ”. Vælg det planlagte tidspunkt som ' Daglige ' og juster ' Start 'tid. I de avancerede indstillinger skal du markere ' Aktiveret ' og tryk på ' Okay ” knap:

Status ændres til ' Aktiveret ”:

Vælg ' Handlinger '-fanen og klik på ' Ny ” knap:

Indtast navnet for 'Action', og søg efter ' Program/manuskript ' PHP-fil, du har oprettet og ' Tilføj argumenter ' og klik på ' Okay ”:

Handlingen oprettes med succes:

Gå til ' Betingelser ' fanen og marker afkrydsningsfeltet ' Væk computeren for at gnide denne opgave ”:

I ' Indstillinger ”-fanen og vælg indstillingerne som vist i outputtet og juster tidspunktet for genstart og klik på ” Okay ” knap:

Prompten vises, skriv legitimationsoplysningerne og klik på ' Okay ” knap:

Din MySQL-database vil automatisk sikkerhedskopiere. Tjek backup-mappen for at se backup-filerne, når det er nødvendigt:

Du har oprettet PHP-filen til backup af MySQL-databasen og derefter for at automatisere backupprocessen, du brugte opgaveplanlægningen.

Konklusion

Brug kodeeditoren til at oprette en PHP-fil, angive MySQL-databaselegitimationsoplysningerne og backupfilnavneformat og datoformat. Brug kommandoen mysqldump til at oprette en SQL-fil og gzip-værktøj til at komprimere SQL-filen. Brug Task Scheduler til automatisering af backup-processen. Dette indlæg demonstrerede, hvordan man automatisk sikkerhedskopierer en MySQL-database ved hjælp af PHP.