sql >> Database teknologi >  >> RDS >> Mysql

Sådan sikkerhedskopieres MySQL-database i PHP?

Selvom du kan udføre backup-kommandoer fra PHP, har de ikke rigtig noget med PHP at gøre. Det hele handler om MySQL.

Jeg vil foreslå at bruge mysqldump-værktøjet til at sikkerhedskopiere din database. Dokumentationen kan findes her :http://dev.mysql. com/doc/refman/5.1/da/mysqldump.html .

Den grundlæggende brug af mysqldump er

mysqldump -u user_name -p name-of-database >file_to_write_to.sql

Du kan derefter gendanne sikkerhedskopien med en kommando som

mysql -u user_name -p <file_to_read_from.sql

Har du adgang til cron? Jeg vil foreslå at lave et PHP-script, der kører mysqldump som et cron-job. Det ville være noget lignende

<?php

$filename='database_backup_'.date('G_a_m_d_y').'.sql';

$result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);

if(empty($output)){/* no output is good */}
else {/* we have something to log the output here*/}

Hvis mysqldump ikke er tilgængelig, beskriver artiklen en anden metode ved at bruge SELECT INTO OUTFILE og LOAD DATA INFILE kommandoer. Den eneste forbindelse til PHP er, at du bruger PHP til at oprette forbindelse til databasen og udføre SQL-kommandoer. Du kan også gøre dette fra kommandolinjen MySQL-programmet, MySQL-skærmen.

Det er ret simpelt, du skriver en SQL-fil med én kommando og indlæser/udfører den, når det er tid til at gendanne.

Du kan finde dokumenterne til at vælge i outfile her (bare søg på siden efter outfile). LOAD DATA INFILE er i det væsentlige det omvendte af dette. Se her for dokumenterne.



  1. MySQL permutation

  2. Find ud af, hvor din PHP-kode bliver langsommere (Performance Issue)

  3. Sådan udføres Stored Procedure fra Laravel

  4. ORA-12154 kunne ikke løse den angivne forbindelses-id