buenos dias para los que tengan este problema de archivo generado vacio en la opcion $dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql"; SOLO CAMBIEN EN LA RUTA DE ACCESO EL "\" POR "/" AHORA SI TE GENERA EL ARCHIVO DE RESPALDO A MI ME FUNCIONO.
Muy buen video! Para los que les sale en blanco es muy importante que tengáis una contraseña en phpmyadmin con la cuenta root. Por lo demás todo bien, se guarda en la misma carpeta que tengas el archivo.php. Si quieres cambiarlo tienes que modificar la variable $salida_sql.
Gracias por el aporte, es el codigo mas corto que encontre y funciona, pero hay que corregirlo ya que a mi tambien me a salido el archivo vacio. Revisando los comentarios encontre 2 cambios esenciales 1): la BD debe tener una contrasena 2) se debe corregir la ruta de "mysqldump" y entrada al cmd "system" La solucion que me funciono fue la correccion del colega "Kevin castellanos" aunque duplica archivos de salida, es la mejor solucion.
A todos los que les da PROBLEMA, Si se te crea el archivo vació. HACER lo siguiente: 1- Primero debes de asignarle una contraseña al usuario Root. Link recuperado de: www.mclibre.org/consultar/webapps/lecciones/phpmyadmin-1-soluciones.html 2- Luego debes de editar las variables de entorno, para eso debes mirar el video - capitulo 2 de este curso. Link recuperado de: ruclips.net/video/UsMLwGEycbo/видео.html&ab_channel=C%C3%B3digosdeProgramaci%C3%B3n-MR 3- Por ultimo, si todavía te sigue dando problema, es muy probable que el archivo mysqldump.exe este dañado, compruébalo buscando el archivo, si el tamaño es de 0 KB, es que no contiene nada por lo tanto no sirve. Nota: Casi siempre el archivo se encuentra en la carpeta bin, todo depende si usas WampServer, XAMPP, AppServ o Laragon. 4- Para solucionar esto descarga el archivo mysqldump.exe nuevamente desde el siguiente sitio web. Link recuperado de: www.exefiles.com/en/exe/mysqldump-exe/ Gracias a Códigos de programación - MR por el curso. Escríbeme para brindarte soporte técnico. Saludos. Licdo Geovanny Santos.
Hola a todos ! Encontré el error, es porque falta agregar la ruta del enlace donde se encuentra el mysqldump. Este enlace lo explica bien y me funcionó !!. ahora el archivo está lleno :D stackoverflow.com/questions/29082539/mysql-dump-on-wamp-server-using-php
saludos a todos estoy usando appserv y pues me daba el archivo en blanco y al hacer mysqldump en el cmd me daba este error Mysqldump.exe Unknown option --no-beep pues resolvi de la siguiente manera investigando $dump = "C:\AppServ\MySQL\bin\mysqldump --no-defaults --user=".$root." --password=".$pw." --host=".$host." ".$db." > $salida_sql"; agrege solo --no-defaults a la linea de comando saludos a todos
Excelente solución, solo que en mi caso cambia la ruta del mysqldump, C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump. Tuve que buscar el archivo mysqldump dentro de la carpeta WAMP para poder colocar la ubicación exacta del archivo. Saludos!, gracias por la solución.
Esta muy bien todo el aporte, pero sin embargo tengo el mismo problema que muchos que te genera el archivo .sql en blanco, pero bueno para todos aquellos que estén en esa misma situación en este sitio encontré un código que me funciono perfecto, igualmente te explica como funciona. www.daniloaz.com/es/backup-de-bases-de-datos-mysql-con-php/
me sirvio mucho la explicacion del video aunque tambien me daba el error que generaba el archivo en blanco, buscando y buscando consegui esta solucion, en mi caso funciono. en el $dump cambie " por ' y realize las concatenaciones como normalmente se hace, en vez de colocar solamente mysqldump le coloque la ruta completa c:\xampp\mysql\bin\mysqldump y el primer parametro le coloque --single-transaction en conclucion quedo asi: $dump = 'c:\xampp\mysql\bin\mysqldump --single-transaction -u '.$user.' -p'.$pass.' '.$db.' > '.$backup_sql.''; con estas modificaciones me funciono, el resto del codigo es tal cual como esta en el video.
yo lo estoy haciendo con mamp, y no me funcionaba me salia el archivo de texto , asi que tube que poner la ruta completa y cambiar algunas cosas, y me quedo asi. $dump= "C:\MAMP\bin\mysql\bin\mysqldump --user=".$db_user." --password=".$db_password." --host=".$db_host." ".$db_nombre." > $salida_sql";
Hola, @código de programación , estaba viendo tu video de backups y pues tengo el mismo problema.... me lo genera en "blanco", y pues me tome el tiempo de leer los comentarios y cuando le agrego la ruta completa al 'mysqldump'... a donde me genera el respaldo?
Que sucede cuando manejas vistas, funciones o procedimientos almacenados? he visto que desde el dump mysql no exporta en el orden correcto de tal manera que la momento de importar genera un error
Excelente video y excelente los aportes para solucionar el problema del archivo en blanco. Aprovecho la pregunta de Luis Gerez para hacerla mas especifica y ver si me pueden ayudar para que se ejecute como tarea programada de windows. Muchas Gracias
Hola quisiera saber si esto mismo funciona para varias bases de datos. Es decir un script similar a este pero que se ejecute para varias bases de datos en vez de solo una y las respalde , con sus debidas tablas, este me gusta por que es con php y mysql. Para terminar tengo entendido que se puede con algun ciclo tipo asi : for DB in $(mysql -e 'show databases' -s --skip-column-names); do done
muy bien hasta que pude solucionar el problema del archivo en blanco, ahora cuando lo guardo se me lo multiplica el mydb.zip en el directorio a que se debe el unlink($salida_zip); que es para eliminar el archivo temporal zip no funciona lo puse despues del header unlink($salida_zip); supuesta mente el unlink es para que no se multiplique que puede ser?
muy buenas en el caso de que tenga triggers que debo hacer porque me genera solo las tablas y los datos pero no los triggers? agradeceria tu respuesta!
Excelente el video. Pero me surge una pregunta; cuando yo subo el script para ejecutarlo en el hosting la función predefinida system() no está habilitada por razones de seguridad y además en servidores Linux el script deberá tener permisos de escritura del usuario del servidor web si queremos tener el respaldo en el servidor, entonces como se podría solucionar este problema ?
Buen día, disculpa, tengo un problema, espero me puedas ayudar: Siguiendo tu ejemplo, no me genera el respaldo, solo me genera el archivo y el nombre, pero nada de contenido. Saludos
Hola, revisa lo siguiente, abre el cmd y escribe mysqldump y te envía un error esque no lo tienes habilitado y debes agregar al path la carpeta bien de mysql, en caso de que solo te diga que tienes error en sintaxis puede que debas configurar mysql y php para que detecte mysqldump
Códigos de Programación Qué tal, si de echo tengo agregada la carpeta bien al path, y en el cmd no me arroja errores, realizó el respaldo perfectamente en cmd
Excelente explicación, a mi también me salía el respaldo en blanco, hice la modificación indicando la ruta exacta de mysqlmydump (buscando el archivo dentro de la carpeta wamp) en la variable $dump, quedando de la siguiente manera: $dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --no-defaults --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql"; Saludos!!
Hola Marko, un saludo. Te comento que he seguido tus instrucciones, sin embargo, me crea un archivo vacío, es decir, el respaldo se encuentra vacío, estoy utilizando appserv 8.6.0, espero me puedas orientar. Gracias.
Hola, configure la variable de entorno correctamente, pero sigue descargando un archivo en blanco, el código lo escribo directamente en simbolos del sistema y si me hace el respaldo, cual será el problema?
Parece que no soy el único al que le sale el archivo vacío. A través de la consola sale perfecto, pero desde el PHP genera un archivo vacío. ¿Cómo se resuelve este inconveniente?
Cariño, una pregunta, ¿qué pasaría si desde mi consola no me accede al mysqldum lo que por ende no me extrae la bd? ¿Qué puedo hacer? Gracias de antemano.
Saludos, mi consulta es por qué el archivo que me crea está vacío?. Al parecer el problema es con mysqldump. Este problema se repetiría en caso de hacer el backup desde el servidor propiamente tal?, porque ahora como lo hago desde mi propio equipo que es windows 7 y tengo el wampserver, quizá esté por ahí, porque si en el vídeo te sale todo bien, entonces el problema solo estaría en mi pc. Otra cosa, influye el navegador? estoy usando chrome... de antemano muchas gracias por tu ayuda.
Muy bien que te haya servidor pero que fue lo diferente que agregaste? Esto? system('C:\xampp\mysql\bin\mysqldump'." -h$db_host -u$db_user -p$db_pass $db_name > "."$salida_sql", $sal);
Bro buen tutu gracias una pregunta por fa si tienes unos archivos de un I panel y no tienes la base de datos MySQL si podrá hacer o no es posible gracias
gracias (Y) , tengo otra duda, acabo de instalar la ultima versión del XAMPP que me vino con php 7. Con php 5 si me funcionaba perfectamente tu script pero con esta versión no, me descarga un archivo en blanco, y en mi PATH si esta el mysqldump y también se reconoce como comando valido en mi CMD.
Hola amigo fijate, que estoy usando xampp para desarrollar una plataforma, pero la creacion del archivo me falla me crea un archivo en blanco sin codigo sql, espero tu respuesta
hola , disculpa la molestia quería saber porque tambien me sale el sql vacío, a la hora de descargar descarga genial, pero al ver el archivo sql, no tiene ningun contenido. Yo uso Wampserver. GRacias de antemano, y espero tus respuestas.
Hola, revisa lo siguiente, abre el cmd y escribe mysqldump y te envía un error esque no lo tienes habilitado y debes agregar al path la carpeta bin de mysql, en caso de que solo te diga que tienes error en sintaxis puede que debas configurar mysql y php para que detecte mysqldump
me sale que mysqldump no se conoce como un comando. yo dentro de C:\wamp64\bin\mysql\mysql5.7.11\bin tengo mysqldump.exe no se si se podrá hacer algo para poder activarlo. podrías hacer un pequeño tutorial por favor, si es que tienes tiempo para saber como arreglar este problema, gracias.
Windows 10 y Windows 8 En Buscar, busque y seleccione: Sistema (Panel de control) Haga clic en el enlace Configuración avanzada del sistema. Haga clic en Variables de entorno. En la sección Variables del sistema, busque la variable de entorno PATH y selecciónela. Haga clic en Editar. Si no existe la variable de entorno PATH, haga clic en Nuevo. En la ventana Editar la variable del sistema (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH. Haga clic en Aceptar. Cierre todas las demás ventanas haciendo clic en Aceptar. Vuelva a abrir la ventana del indicador de comandos y ejecute el código.
Hola, una duda, veo que a varias personas igual que a mi les genera un archivo en blanco del respaldo, pero con cmd genera todo bien, alguien encontró alguna forma de solucionar este problema?...
my buen video gracias lo eche a andar y me descargo archivos en blanco lo quise poner con un boton submit y en action puse el codigo pero me manda hojas en blanco
Hola ! me sale un error "mysqldump" no se reconoce como un comando interno externo, programa o archivos por lotes ejecutables. que hago??? como agrego y configuro la carpeta path en windows 7 Gracias.
En Buscar, busque y seleccione: Sistema (Panel de control) Haga clic en el enlace Configuración avanzada del sistema. Haga clic en Variables de entorno. En la sección Variables del sistema, busque la variable de entorno PATH y selecciónela. Haga clic en Editar. Si no existe la variable de entorno PATH, haga clic en Nuevo. En la ventana Editar la variable del sistema (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH. Haga clic en Aceptar. Cierre todas las demás ventanas haciendo clic en Aceptar. Vuelva a abrir la ventana del indicador de comandos y ejecute el código.
No me funcionó, me lo genera en blanco, aún indicando la ruta completa, pero encontré otra manera de hacerlo que si me sirvió: www.forosdelweb.com/f18/como-hacer-respaldo-base-datos-mysql-mediante-php-formlulario-931385/
$db_user = "root"; $db_pass = ""; $db_host = "localhost"; $db_name = "prueba"; $fecha= date("Y-m-d-His"); $salida_sql = $db_name.'_'.$fecha.'.sql'; system('C:\xampp\htdocs espaldo'." -h$db_host -u$db_user -p$db_pass $db_name > "."$salida_sql", $sal); Puse este codigo para xamp no me genera ningun error al correrlo pero el respaldo no me lo genera en que estoy mal
Para los que les genera un archivo en blanco, ésta fue mi solución: $dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql";
@@codigosdeprogramacion escribe completo los datos, por ejemplo no deja la u de user, si me funciono esta solución pero sin indicar la ruta $dump = "mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql"; también funciona. gracias
ps le falta poner .sql mi ejemplo $dump="C:\Program Files\MySQL\MySQL Server 5.7\bin mysqldump -h $servername -u $username -p $password --opt $base>$salida_sql.sql"; igual sale el script en blanco recomiendo mas el comentario @UCoqIwQWPwCwU0Usgm-pBegA
Ya intente todas las sugerencias de los comentarios e incluso en otras paginas y no encuentra la solución me sigue apareciendo en blanco el archivo. si lo ejecuto en cmd sí me hace el respaldo de forma correcta. espero que alguien haya encontrado la solución y pueda compartirla. muchas gracias. En la última que me quede es el mismo que aparece en el proyecto agregando la ubicación mysqldump. $dump = "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump --h$db_host -u$db_user -p$db_pass --opt $db_name > $salida_sql";
Me sucede lo mismo, y la bd esta bien instalada, la he utilizado ya, se me hace que el problema esta en la contraseña, si ejecuto el comando en el cmd me genera el .sql perfectamente con los datos, pero si lo hago desde php me genera el archivo vacio, sucede que en el cmd al presionar enter despues de escribir el comando de mysqldump con sus respectivas opciones salta el prompt pidiendote que ingreses la contraseña de la bd, ahora si la instrucción system lo que hace es ejecutar el comando en la maquina donde esta el servidor web supongo que tambien creará una terminal para el proceso razón por la cual espera que se le ingrese el password(en el cmd no toma la contraseña si la suministro despues de la opcion -p ) pero como no tenemos acceso supongo que el servidor web le enviará algo distinto al password que realmente es por lo que genera un error y se devuelve un archivo vacío, similar que si se le coloca un password erróneo en el cmd(es mi opinión, no tiene por que estar en lo cierto), estoy con php 7.1.11. si hallan alguna solución estaría genial que la postearan acá, recuerden que el conocimiento lo hacemos entre todos! saludos.
Pruebe de esta manera, lo realicé en xampp y funciona, lo único que no logro solucionar es que me envia un error de cabeceras $fecha = date("Ymd---His"); $usuario="root"; // Usuario de la base de datos $passwd=""; // Contraseña bd $bd="eparking"; // Nombre de la Base de Datos $filename = "./"."eparking.sql"; // Nombre del archivo a exportar // Funciones para exportar la base de datos $executa = "c:\\xampp\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd > $filename"; system($executa, $resultado); // Comprobar si se a realizadó if ($resultado) { echo "Error ejecutando comando: $executa "; }else{ $zip = new ZipArchive(); $nombre_zip = $bd."_".$fecha.".rar"; if ($zip->open($nombre_zip,ZIPARCHIVE::CREATE) === true) { $zip->addFile($filename); $zip->close(); unlink($filename); header("Location:".$nombre_zip); }else{ echo "No se pudo exportar a RAR"; } echo "se exportó existosamente"; }
yo soluciones el que me exportara en blanco solo agregandole .exe al final de mysqldump asi: $dump ="C:/xampp/mysql/bin/mysqldump.exe -h$servername -u$username -p$password --opt $database > $salida_sql";
buenos dias para los que tengan este problema de archivo generado vacio en la opcion $dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql";
SOLO CAMBIEN EN LA RUTA DE ACCESO EL "\" POR "/" AHORA SI TE GENERA EL ARCHIVO DE RESPALDO A MI ME FUNCIONO.
Solucionado! había tratado miles de formas y nada, gracias bro!
@@expardo5689 te genera los inserts a mi no me genera
a mi me sigue enviando el archivo en blanco
Muy buen video! Para los que les sale en blanco es muy importante que tengáis una contraseña en phpmyadmin con la cuenta root. Por lo demás todo bien, se guarda en la misma carpeta que tengas el archivo.php. Si quieres cambiarlo tienes que modificar la variable $salida_sql.
Gracias por tu recomendación
He hecho lo mismo que usted dice, pero tengo el problema...me crea una copia vacía
David Prieto como haces para que no se guarde el sql en el mismo archivo.php y sea en otra carpeta
Gracias por el aporte, es el codigo mas corto que encontre y funciona, pero hay que corregirlo ya que a mi tambien me a salido el archivo vacio.
Revisando los comentarios encontre 2 cambios esenciales 1): la BD debe tener una contrasena 2) se debe corregir la ruta de "mysqldump" y entrada al cmd "system"
La solucion que me funciono fue la correccion del colega "Kevin castellanos" aunque duplica archivos de salida, es la mejor solucion.
Hey, me puedes explicar ? Por favor, no logre entender muy bien lo que quisiste decir.
A todos los que les da PROBLEMA, Si se te crea el archivo vació. HACER lo siguiente:
1- Primero debes de asignarle una contraseña al usuario Root. Link recuperado de: www.mclibre.org/consultar/webapps/lecciones/phpmyadmin-1-soluciones.html
2- Luego debes de editar las variables de entorno, para eso debes mirar el video - capitulo 2 de este curso. Link recuperado de: ruclips.net/video/UsMLwGEycbo/видео.html&ab_channel=C%C3%B3digosdeProgramaci%C3%B3n-MR
3- Por ultimo, si todavía te sigue dando problema, es muy probable que el archivo mysqldump.exe este dañado, compruébalo buscando el archivo, si el tamaño es de 0 KB, es que no contiene nada por lo tanto no sirve.
Nota: Casi siempre el archivo se encuentra en la carpeta bin, todo depende si usas WampServer, XAMPP, AppServ o Laragon.
4- Para solucionar esto descarga el archivo mysqldump.exe nuevamente desde el siguiente sitio web. Link recuperado de: www.exefiles.com/en/exe/mysqldump-exe/
Gracias a Códigos de programación - MR por el curso.
Escríbeme para brindarte soporte técnico.
Saludos. Licdo Geovanny Santos.
Gracias por el aporte
Un crack!! saludos desde Perú.
Saludos
Muy buen video, como siempre excelente tu explicación gracias por compartir.
Saludos desde Colombia.
Gracias
Hola a todos ! Encontré el error, es porque falta agregar la ruta del enlace donde se encuentra el mysqldump. Este enlace lo explica bien y me funcionó !!. ahora el archivo está lleno :D stackoverflow.com/questions/29082539/mysql-dump-on-wamp-server-using-php
Hola, gracias por la sugerencia
Gracias, buen samaritano.
Tuve que hacerle algunos ajustes pero todo funciona muy bien... Excelente video.. muchas gracias XD
Gracias, saludos
@@codigosdeprogramacion XD
Excelente vídeo muy bien explicado. Saludos!
Graicas
Excelente video... bueno muy bueno
Gracias
Excelente vídeo amigo... un cordial saludo...
Gracias Saludos
muy buen video me funciono. Gracias
Excelente!
chevere tio..!! muy bueno el aporte..!!!
Gracias, saludos
saludos a todos estoy usando appserv y pues me daba el archivo en blanco y al hacer mysqldump en el cmd me daba este error Mysqldump.exe Unknown option --no-beep pues resolvi de la siguiente manera investigando $dump = "C:\AppServ\MySQL\bin\mysqldump --no-defaults --user=".$root." --password=".$pw." --host=".$host." ".$db." > $salida_sql";
agrege solo --no-defaults a la linea de comando
saludos a todos
Excelente solución, solo que en mi caso cambia la ruta del mysqldump, C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump. Tuve que buscar el archivo mysqldump dentro de la carpeta WAMP para poder colocar la ubicación exacta del archivo.
Saludos!, gracias por la solución.
@@polivirtualcecyt109 hola y donde se pone ese codigo porque lo modifico en el codigo original donde dice mysqldum y nada
Exelente Video solo que no elimina la carpeta comprimida pero muy buen video te felicito sigue asi bro manita arriba
Gracias, saludos
Esta muy bien todo el aporte, pero sin embargo tengo el mismo problema que muchos que te genera el archivo .sql en blanco, pero bueno para todos aquellos que estén en esa misma situación en este sitio encontré un código que me funciono perfecto, igualmente te explica como funciona.
www.daniloaz.com/es/backup-de-bases-de-datos-mysql-con-php/
anduvo perfecto, muchas gracias.
ANDA DE LUJO, FELICIDADES
Gracias, tambien me salia en blanco y ese funciono muy bien
me costo un poco incorporarlo pero quedo perfecto gracias por el aporte
cual sitio?
buen video una pregunta se puede hacer que se ejecute de manera auto diario,gracias!
excelente video!!!!
no me funciona, me genera un archivo sql vacío...lo probé con la base de datos de localhost y la del hosting, ambos casos hace exactamente lo mismo..
me sirvio mucho la explicacion del video aunque tambien me daba el error que generaba el archivo en blanco, buscando y buscando consegui esta solucion, en mi caso funciono.
en el $dump cambie " por ' y realize las concatenaciones como normalmente se hace, en vez de colocar solamente mysqldump le coloque la ruta completa c:\xampp\mysql\bin\mysqldump y el primer parametro le coloque --single-transaction
en conclucion quedo asi: $dump = 'c:\xampp\mysql\bin\mysqldump --single-transaction -u '.$user.' -p'.$pass.' '.$db.' > '.$backup_sql.'';
con estas modificaciones me funciono, el resto del codigo es tal cual como esta en el video.
Muy buena compa
No se quedó la página en actualización?
@@steveramirez7782 no, en mi caso se hace el proceso rápido pero mi data es bastante pequeña (puede ser por eso)
hago todo el proceso y lo hace bien pero luego cuando quiero abrir el archivo en visual code me sale vacio
Debes agregar la ruta completa de mysqldump.exe, está en la carpeta bien de la instalación de MySQL
yo lo estoy haciendo con mamp, y no me funcionaba me salia el archivo de texto , asi que tube que poner la ruta completa y cambiar algunas cosas, y me quedo asi.
$dump= "C:\MAMP\bin\mysql\bin\mysqldump --user=".$db_user." --password=".$db_password." --host=".$db_host." ".$db_nombre." > $salida_sql";
Hola, @código de programación , estaba viendo tu video de backups y pues tengo el mismo problema.... me lo genera en "blanco", y pues me tome el tiempo de leer los comentarios y cuando le agrego la ruta completa al 'mysqldump'... a donde me genera el respaldo?
Hola, la ruta completa es solo para acceder a mysqldump.exe, el respaldo te lo generará donde se encuentre tu script o si le asignaste una ubicación
Hola, me da un archivo vacio, es porque no tengo el mysqldump en el path o porque sería?
Como le indico la ruta en donde quiero que se guarde?
En la función Output, en el nombre debes agregar toda la ruta junto con el nombre
Que sucede cuando manejas vistas, funciones o procedimientos almacenados? he visto que desde el dump mysql no exporta en el orden correcto de tal manera que la momento de importar genera un error
una pregunta que puede ser obvia pero quiero aclarar, respalda todos los registros de la base de datos de cada tabla, gracias saludos
Hola, todo lo que tenga la base de datos
excelente video amigo, una preguna como le hago para hacer un restore de la base de datos
help full vidoe thanx
HOla, excelente video. Te queria preguntar si hay forma de hacer que el script se ejecute aturomaticamente cada 3 hs por ej ?
Hola, si hay forma pero necesitas algo externo por ejemplo cron en linux y en windows con Tareas programadas
Excelente video y excelente los aportes para solucionar el problema del archivo en blanco. Aprovecho la pregunta de Luis Gerez para hacerla mas especifica y ver si me pueden ayudar para que se ejecute como tarea programada de windows. Muchas Gracias
Hola una pregunta este codigo se podría adaptar para postgres?
Hola, si lo puedes adaptar pero utilizando los comandos de PostgreSql para respaldo
Hola quisiera saber si esto mismo funciona para varias bases de datos. Es decir un script similar a este pero que se ejecute para varias bases de datos en vez de solo una y las respalde , con sus debidas tablas, este me gusta por que es con php y mysql. Para terminar tengo entendido que se puede con algun ciclo tipo asi : for DB in $(mysql -e 'show databases' -s --skip-column-names); do done
Se puede y con un For como mencionas
@@codigosdeprogramacion Tienes algun ejemplo, me encantaria ver uno, Saludos y muchas Bendiciones
muy bien hasta que pude solucionar el problema del archivo en blanco, ahora cuando lo guardo se me lo multiplica el mydb.zip en el directorio a que se debe el unlink($salida_zip); que es para eliminar el archivo temporal zip no funciona lo puse despues del header unlink($salida_zip); supuesta mente el unlink es para que no se multiplique que puede ser?
muy buenas en el caso de que tenga triggers que debo hacer porque me genera solo las tablas y los datos pero no los triggers?
agradeceria tu respuesta!
Hola, los triggers si son guardados por ese respaldo pero en caso de que no agrega -routines
no me deja ejecutar mysqldump en mi servidor linux ya que quiere que esté logeado con root, como haría en este caso
Como se podria hacer el procedimiento de guardarlo como descarga pero que se ejecute al presionar un boton?
Hola, primero necesitas crear el archivo después agregar un header para redireccionar a ese archivo y se descarga automáticamente
@@codigosdeprogramacion gracias por la información... Me sirvió
Todo muy bien pero me aparece ¡OBJETO NO LOCALIZADO! no encuentra la ruta.
Excelente el video. Pero me surge una pregunta; cuando yo subo el script para ejecutarlo en el hosting la función predefinida system() no está habilitada por razones de seguridad y además en servidores Linux el script deberá tener permisos de escritura del usuario del servidor web si queremos tener el respaldo en el servidor, entonces como se podría solucionar este problema ?
Amigo lograste solucionar el problema?
Muy bueno, tendrás uno para conectar php con sql server
Hola, si se harán tutoriales de conexión de PHP a los diferentes motores de Base de Datos
Buen día, disculpa, tengo un problema, espero me puedas ayudar: Siguiendo tu ejemplo, no me genera el respaldo, solo me genera el archivo y el nombre, pero nada de contenido. Saludos
Hola, revisa lo siguiente, abre el cmd y escribe mysqldump y te envía un error esque no lo tienes habilitado y debes agregar al path la carpeta bien de mysql, en caso de que solo te diga que tienes error en sintaxis puede que debas configurar mysql y php para que detecte mysqldump
Códigos de Programación Qué tal, si de echo tengo agregada la carpeta bien al path, y en el cmd no me arroja errores, realizó el respaldo perfectamente en cmd
¿Como lo habilito?
Se puede hacer que el repaldo se envie a un correo, o a un drive , o drop box?
Hola, si es posible hacer ambas pero pasa eso necesitas la librería phpmailer para enviar el correo y la API de Dropbox para almacenarla allí
excelente, pero si quiero que que se ejecute solo todo los días como le hago?
Hola, te recomiendo utilizar el programador de tareas en windows y cron en linux para programar los respaldos
@@codigosdeprogramacion el problema es que su sistema esta en windows XD
@@ICuantunRexI Utiliza el programador de tareas
Excelente explicación, a mi también me salía el respaldo en blanco, hice la modificación indicando la ruta exacta de mysqlmydump (buscando el archivo dentro de la carpeta wamp) en la variable $dump, quedando de la siguiente manera:
$dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --no-defaults --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql";
Saludos!!
Muchas gracias amigo, me sirvio para Xampp, cambiando la dirección donde esta mysqldump respectivamente a 'C:\xampp\mysql\bin\mysqldump'
Hola Marko, un saludo. Te comento que he seguido tus instrucciones, sin embargo, me crea un archivo vacío, es decir, el respaldo se encuentra vacío, estoy utilizando appserv 8.6.0, espero me puedas orientar. Gracias.
Hola, puede que sea la compatibilidad entre PHP y MySQL, voy a revisar y te comento
Hola, configure la variable de entorno correctamente, pero sigue descargando un archivo en blanco, el código lo escribo directamente en simbolos del sistema y si me hace el respaldo, cual será el problema?
Hola, puede que la instalación de MySQL no se hizo correctamente.
buen video, tengo un problema, me arroja un archivo .sql vacio, lo probe en cdm y si me sale bien, que puede ser?
Holaa una pregunta como resolviste ese problema, porque igualmente mi cmd si lo hace bien pero el php no
Parece que no soy el único al que le sale el archivo vacío. A través de la consola sale perfecto, pero desde el PHP genera un archivo vacío. ¿Cómo se resuelve este inconveniente?
A que se debe que al ejecutarlo en php de wamp me crear un archivo sql en blanco sin respaldo
Que el modo seguro de MySQL esta activado por ese motivo no deja acceder al motor desde una aplicación externa.
Como lo puedo desactivar, me gustaría poder hacer respaldos en el host local de wamp?
Cariño, una pregunta, ¿qué pasaría si desde mi consola no me accede al mysqldum lo que por ende no me extrae la bd? ¿Qué puedo hacer?
Gracias de antemano.
Hola, lo que pasa es que no tienes agregado al PATH la carpeta bin de MySQL, en este vídeo lo configuramos:
ruclips.net/video/UsMLwGEycbo/видео.html
excelente video una consulta si yo quiero que se ejecute automatica mente a una hora programada
Hola, para eso necesitas hacer una tarea programada ya sea en windows o linux para que se generé automáticamente
yo trabajo con windows como lo hago esa tarea
technet.microsoft.com/es-es/library/cc748993(v=ws.11).aspx
Saludos, mi consulta es por qué el archivo que me crea está vacío?. Al parecer el problema es con mysqldump. Este problema se repetiría en caso de hacer el backup desde el servidor propiamente tal?, porque ahora como lo hago desde mi propio equipo que es windows 7 y tengo el wampserver, quizá esté por ahí, porque si en el vídeo te sale todo bien, entonces el problema solo estaría en mi pc. Otra cosa, influye el navegador? estoy usando chrome... de antemano muchas gracias por tu ayuda.
Hola, no el navegador el detalle esta en la instalación de MySQL en ocasiones no se realiza correctamente
para el que use xampp de esta forma solucione el problema de archivos vacio
Muy bien que te haya servidor pero que fue lo diferente que agregaste?
Esto? system('C:\xampp\mysql\bin\mysqldump'." -h$db_host -u$db_user -p$db_pass $db_name > "."$salida_sql", $sal);
Si solamente eso y use comillas simples en la parte directorio para poder escapar las plecas inversas ya que con comillas doble no se podía
Eres grande!!!. Muchas gracias por compartir tu código
excelente la explicacion, mi preguinta es como seria en postgresql????
amigo lograstes hacerlo con postgres?
que sera que no funciona a mi
Revisa que tengas agregado al path la ruta bien de mysql, sino agrega la ruta completa donde se cuenta mysql.exe
Bro buen tutu gracias una pregunta por fa si tienes unos archivos de un I panel y no tienes la base de datos MySQL si podrá hacer o no es posible gracias
El tutorial es para respaldo de base de datos
@@codigosdeprogramacion si lo se eta una pregunta cuando si tiene un I panel y no tienes la abase de datos eso si puede arreglar o no
@@codigosdeprogramacion tiene telegram o algo para estar más al tanto amigo me gusta mucho su buen trabajo y me gustaría preguntarle más gracias
ahora resulto efectivamente es la ruta.. Mi consulta al subirla al hosting, debemos poner la ruta completa?
Mil gracias!!! logre entender que era la ruta! la que tenia mal.
genio eres el unico q resolvio, los demas pongan contraseñas variables de ambiente te felicito
el respaldo funciona de igual manera, si el servidor es externo, osea que no sea un servidor local?
Hola, así es, solo debes colocar sus datos de conexión.
gracias (Y) , tengo otra duda, acabo de instalar la ultima versión del XAMPP que me vino con php 7. Con php 5 si me funcionaba perfectamente tu script pero con esta versión no, me descarga un archivo en blanco, y en mi PATH si esta el mysqldump y también se reconoce como comando valido en mi CMD.
Hola, puede que sea por la instalación de Xampp que este haciendo conflicto
Hola amigo fijate, que estoy usando xampp para desarrollar una plataforma, pero la creacion del archivo me falla me crea un archivo en blanco sin codigo sql, espero tu respuesta
Hola, puede que la instalación de MySQL no se hizo correctamente.
Códigos de Programación Hola fijate que me sirve con el CMD pero con el php no, y la salida de la función command es 1
me descarga vacio el respaldo..a que crees que se deba?
igual a mi
hola , disculpa la molestia quería saber porque tambien me sale el sql vacío, a la hora de descargar descarga genial, pero al ver el archivo sql, no tiene ningun contenido. Yo uso Wampserver. GRacias de antemano, y espero tus respuestas.
Hola, revisa lo siguiente, abre el cmd y escribe mysqldump y te envía un error esque no lo tienes habilitado y debes agregar al path la carpeta bin de mysql, en caso de que solo te diga que tienes error en sintaxis puede que debas configurar mysql y php para que detecte mysqldump
me sale que mysqldump no se conoce como un comando.
yo dentro de C:\wamp64\bin\mysql\mysql5.7.11\bin tengo mysqldump.exe no se si se podrá hacer algo para poder activarlo. podrías hacer un pequeño tutorial por favor, si es que tienes tiempo para saber como arreglar este problema, gracias.
Windows 10 y Windows 8
En Buscar, busque y seleccione: Sistema (Panel de control)
Haga clic en el enlace Configuración avanzada del sistema.
Haga clic en Variables de entorno. En la sección Variables del sistema, busque la variable de entorno PATH y selecciónela. Haga clic en Editar. Si no existe la variable de entorno PATH, haga clic en Nuevo.
En la ventana Editar la variable del sistema (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH. Haga clic en Aceptar. Cierre todas las demás ventanas haciendo clic en Aceptar.
Vuelva a abrir la ventana del indicador de comandos y ejecute el código.
Hola, como estas, configure la variable de entorno correctamente, pero sigue descargando un archivo en blanco
buenas como se puede hacer para que esta rutina se ejecute en el servidor todos los dias??
la puedes hacer con CRON (búscalo con eso puedes hacer email temporizado)
la puedes hacer con CRON (búscalo con eso puedes hacer email temporizado)
Para que sirve la variable $output??
Hola, devuelve la última línea de la salida del comando en caso de tener éxito, y FALSE si ocurre un error.
Hola, una duda, veo que a varias personas igual que a mi les genera un archivo en blanco del respaldo, pero con cmd genera todo bien, alguien encontró alguna forma de solucionar este problema?...
Hola, puede que la instalación de MySQL no se hizo correctamente.
my buen video gracias lo eche a andar y me descargo archivos en blanco lo quise poner con un boton submit y en action puse el codigo pero me manda hojas en blanco
Hola, puede que la instalación de MySQL no se hizo correctamente.
buenos dias el archivo .sql sale vacio por que?????????
Hola, revisa los comentarios, varios usuario dieron diferentes soluciones.
Hola !
me sale un error "mysqldump" no se reconoce como un comando interno externo, programa o archivos por lotes ejecutables. que hago???
como agrego y configuro la carpeta path en windows 7
Gracias.
En Buscar, busque y seleccione: Sistema (Panel de control)
Haga clic en el enlace Configuración avanzada del sistema.
Haga clic en Variables de entorno. En la sección Variables del sistema, busque la variable de entorno PATH y selecciónela. Haga clic en Editar. Si no existe la variable de entorno PATH, haga clic en Nuevo.
En la ventana Editar la variable del sistema (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH. Haga clic en Aceptar. Cierre todas las demás ventanas haciendo clic en Aceptar.
Vuelva a abrir la ventana del indicador de comandos y ejecute el código.
ya configure el path pero el respaldo se descargar vació que hago ??
Saludos, cual seria el valor de la variable, es decir, que debo editar.
La ruta de la carpeta bin de mysql
hola buenas me muestra vacio el .sql
Hola, puede que instalación de MySQL es ta correcta
No me funcionó, me lo genera en blanco, aún indicando la ruta completa, pero encontré otra manera de hacerlo que si me sirvió: www.forosdelweb.com/f18/como-hacer-respaldo-base-datos-mysql-mediante-php-formlulario-931385/
gracias saludos desde venezuela, me sirvio de mucho su enlace .
$db_user = "root";
$db_pass = "";
$db_host = "localhost";
$db_name = "prueba";
$fecha= date("Y-m-d-His");
$salida_sql = $db_name.'_'.$fecha.'.sql';
system('C:\xampp\htdocs
espaldo'." -h$db_host
-u$db_user -p$db_pass $db_name > "."$salida_sql", $sal);
Puse este codigo para xamp no me genera ningun error al correrlo pero el respaldo no me lo genera en que estoy mal
es porque nunca llamas a mysqldump que es quien genera el respaldo, revisa el vídeo para que veas como agregarlo
Hey!! Genera el zip con archivo en blanco ? Como a ti en el video, que puede ser ? Esta tal cual como el video, porque sale en blanco ?
Tal vez no tienes agregada la ruta de PHP al PATH.
Acá abajo en los comentarios varios dejaron posibles soluciones.
@@codigosdeprogramacion Si eso estoy mirando, pero las soluciones que dan son para mysql de atras, yo uso el 8.0
hola! buen vídeo muchas gracias. tengo un pequeño problema...
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
no le agregues nada en el password ' ';
@@pp202020 gracias supongo jaja ya no recuerdo que problema era ni recuerdo php jajaja me pase a javascript
La solucion del problema es indicar la ruta exacta del msqldump $mysqldump='"C:\AppServ\MySQL\bin\mysqldump.exe"';
Claro, esa es una de ellas
@@codigosdeprogramacion cual es la otra?
Para los que les genera un archivo en blanco, ésta fue mi solución:
$dump = "C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql";
Muy bien que te haya servidor pero que fue lo diferente que agregaste?
@@codigosdeprogramacion escribe completo los datos, por ejemplo no deja la u de user, si me funciono esta solución pero sin indicar la ruta $dump = "mysqldump --user=".$db_user." --password=".$db_pass." --host=".$db_host." ".$db_name." > $salida_sql"; también funciona. gracias
gracias :D
a alguien le sirvió en 2021??
En 2021 aun sirve
ps le falta poner .sql mi ejemplo $dump="C:\Program Files\MySQL\MySQL Server 5.7\bin mysqldump -h $servername -u $username -p $password --opt $base>$salida_sql.sql";
igual sale el script en blanco recomiendo mas el comentario @UCoqIwQWPwCwU0Usgm-pBegA
Ya intente todas las sugerencias de los comentarios e incluso en otras paginas y no encuentra la solución me sigue apareciendo en blanco el archivo. si lo ejecuto en cmd sí me hace el respaldo de forma correcta. espero que alguien haya encontrado la solución y pueda compartirla. muchas gracias. En la última que me quede es el mismo que aparece en el proyecto agregando la ubicación mysqldump.
$dump = "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump --h$db_host -u$db_user -p$db_pass --opt $db_name > $salida_sql";
me pasa exactamente igual que a ti
$dump="C:\Program Files\MySQL\MySQL Server 5.7\bin mysqldump -h $servername -u $username -p $password --opt $base>$salida_sql.sql";
Saludos me genera un archivo en cero y mi sistema está correctamente instalado.
Hola, puede que la instalación de MySQL no se hizo correctamente.
Me sucede lo mismo, y la bd esta bien instalada, la he utilizado ya, se me hace que el problema esta en la contraseña, si ejecuto el comando en el cmd me genera el .sql perfectamente con los datos, pero si lo hago desde php me genera el archivo vacio, sucede que en el cmd al presionar enter despues de escribir el comando de mysqldump con sus respectivas opciones salta el prompt pidiendote que ingreses la contraseña de la bd, ahora si la instrucción system lo que hace es ejecutar el comando en la maquina donde esta el servidor web supongo que tambien creará una terminal para el proceso razón por la cual espera que se le ingrese el password(en el cmd no toma la contraseña si la suministro despues de la opcion -p ) pero como no tenemos acceso supongo que el servidor web le enviará algo distinto al password que realmente es por lo que genera un error y se devuelve un archivo vacío, similar que si se le coloca un password erróneo en el cmd(es mi opinión, no tiene por que estar en lo cierto), estoy con php 7.1.11. si hallan alguna solución estaría genial que la postearan acá, recuerden que el conocimiento lo hacemos entre todos! saludos.
Pruebe de esta manera, lo realicé en xampp y funciona, lo único que no logro solucionar es que me envia un error de cabeceras
$fecha = date("Ymd---His");
$usuario="root"; // Usuario de la base de datos
$passwd=""; // Contraseña bd
$bd="eparking"; // Nombre de la Base de Datos
$filename = "./"."eparking.sql"; // Nombre del archivo a exportar
// Funciones para exportar la base de datos
$executa = "c:\\xampp\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd > $filename";
system($executa, $resultado);
// Comprobar si se a realizadó
if ($resultado) {
echo "Error ejecutando comando: $executa
";
}else{
$zip = new ZipArchive();
$nombre_zip = $bd."_".$fecha.".rar";
if ($zip->open($nombre_zip,ZIPARCHIVE::CREATE) === true) {
$zip->addFile($filename);
$zip->close();
unlink($filename);
header("Location:".$nombre_zip);
}else{
echo "No se pudo exportar a RAR";
}
echo "se exportó existosamente";
}
@@haroltrangel3895 muchas gracias amigo , funciona perfecto , no todos los heroes llevan capa
@@haroltrangel3895 muchas gracias amigo, funciona perfectamente
yo soluciones el que me exportara en blanco solo agregandole .exe al final de mysqldump asi:
$dump ="C:/xampp/mysql/bin/mysqldump.exe -h$servername -u$username -p$password --opt $database > $salida_sql";
Excelente