sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hacer una copia de seguridad de la base de datos MySQL en PHP?

Si bien puede ejecutar comandos de copia de seguridad desde PHP, en realidad no tienen nada que ver con PHP. Se trata de MySQL.

Sugeriría usar la utilidad mysqldump para hacer una copia de seguridad de su base de datos. La documentación se puede encontrar aquí:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

El uso básico de mysqldump es

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

Luego puede restaurar la copia de seguridad con un comando como

mysql -u user_name -p <file_to_read_from.sql

¿Tienes acceso a cron? Sugeriría hacer un script PHP que ejecute mysqldump como un trabajo cron. Eso sería algo como

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

Si mysqldump no está disponible, el artículo describe otro método, usando SELECT INTO OUTFILE y LOAD DATA INFILE comandos La única conexión con PHP es que está utilizando PHP para conectarse a la base de datos y ejecutar los comandos SQL. También puede hacer esto desde la línea de comandos del programa MySQL, el monitor MySQL.

Es bastante simple, está escribiendo un archivo SQL con un comando y cargándolo/ejecutándolo cuando sea el momento de restaurarlo.

Puede encontrar los documentos para seleccionar en el archivo de salida aquí (solo busque en la página outfile). LOAD DATA INFILE es esencialmente lo contrario de esto. Ver aquí para los documentos.