sql >> Database >  >> RDS >> Mysql

Hoe een MySQL-database back-uppen in PHP?

Hoewel je back-upopdrachten vanuit PHP kunt uitvoeren, hebben ze niet echt iets met PHP te maken. Het draait allemaal om MySQL.

Ik raad aan om het hulpprogramma mysqldump te gebruiken om een ​​back-up van uw database te maken. De documentatie is hier te vinden:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

Het basisgebruik van mysqldump is

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

U kunt de back-up vervolgens herstellen met een opdracht als

mysql -u user_name -p <file_to_read_from.sql

Heb je toegang tot cron? Ik zou willen voorstellen om een ​​PHP-script te maken dat mysqldump als een cron-taak uitvoert. Dat zou zoiets zijn als

<?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*/}

Als mysqldump niet beschikbaar is, beschrijft het artikel een andere methode, met behulp van de SELECT INTO OUTFILE en LOAD DATA INFILE commando's. De enige verbinding met PHP is dat je PHP gebruikt om verbinding te maken met de database en de SQL-opdrachten uit te voeren. U kunt dit ook doen vanaf het MySQL-programma op de opdrachtregel, de MySQL-monitor.

Het is vrij eenvoudig:u schrijft een SQL-bestand met één opdracht en laadt/voert het uit wanneer het tijd is om te herstellen.

U kunt de documenten voor select into outfile hier vinden (zoek gewoon op de pagina naar outfile). LOAD DATA INFILE is in wezen het omgekeerde hiervan. Zie hier voor de documenten.



  1. Converteer seconden naar voor mensen leesbare tijdsduur

  2. Blob in Oracle-database invoegen met C#

  3. Wat is het grote verschil tussen Varchar2 en char

  4. PostgreSQL-beheer en -automatisering met ClusterControl