Ultimamente he estado trabajanco con MySQL y PHP. Me toco hacer una rutina para respaldar bases de datos con mysql.
Les pongo el codigo, kizas a mas de alguno le va ha servir. Este codigo no solo funciona con PHP, lo pueden usar con otros lenguajes de programacion.
Crear la copia de la base de datos en PHP
<?php
shell_exec('mysqldump --host=nombre_del_server --user=usuario --password=la_clave nombre_base_de_datos > cualquier/directorio/nombre_base_de_datos.sql');
?>
Si no ponen la ruta donde kieren guardar el archivo sql, este se guardará en la carpeta donde se encuentra el script.
Deben tener permisos de escritura para la carpeta donde se guardara la copia de la base de datos.
Tambien deben tener permisos de ejecución para cmd.exe, si usan windows.
Si estan usando linux con Apache deben dar permisos para que Apache pueda ejecutar el comando mysqldump.
Crear la copia de la base de datos en el shell de mysql.
c:\mysqldump -h=nombre_del_server -u=usuario -pla_clave nombre_base_de_datos > cualquier/directorio/nombre_base_de_datos.sql;
Para restaurar la copia de seguridad con PHP
<?php
shell_exec('mysql --host=nombre_del_server --user=usuario --password=la_clave nombre_base_de_datos < cualquier/directorio/nombre_base_de_datos.sql');
?>
Claro que antes de restaurar la base de datos deben crearla, pueden hacerlo con el shell de mysql. Para ejecutar el comando en PHP deben usar shell_exec() o system() y tambien deben colocar los datos del usuario y el servidor.
mysql> mysqladmin create nombre_base_de_datos