Cuando queremos cambiar de servidor por las razones que sean, tenemos que migrar nuestras base de datos y esto puede podrá o no realizar según las limitaciones de tamaño de cada hosting.
phpMyAdmin tiene una cierta limitación cuando importamos ficheros de un tamaño mediano/grande con lo que no podremos replicar o mover nuestra base de datos a nuestro host. Para evitar este problema existe una solución fácil, sencilla y para toda la familia, esta solución se llama BigDump.
BigDump es un script en el que podremos importar base de datos de cualquier tamaño en pocos pasos, pero antes habrá que configurar este fichero.
Configuración BigDump
Primero de todo, nos descargarmos el fichero de bigdump Una vez descargado, necesitamos abrir el fichero bigdump.php en cualquier editor de texto (o editor php) para modificar las variables requeridas de tu base de datos y servidor.
Alrededor de la línea 39 donde dice “// Data configuration”, tendremos que configurar las variables para conectar a la base de datos en la que queremos importar nuestros datos.
// Database configuration
$db_server = «localhost»;
$db_name = «your_DB_name»;
$db_username = «your_DB_user_name»;
$db_password = «your_DB_password»;
// Other Settings
// Specify the dump filename to suppress the file selection dialog
$filename = «the_file_you_wish_to_execute»;
// Lines to be executed per one import session
$linespersession = 3000;
// You can specify a sleep time in milliseconds after each session
// Works only if JavaScript is activated. Use to reduce server overrun
$delaypersession = 0;
Si la base de datos tiene más de 3000 lineas de datos, también tendremos que ampliar la variable de $linespersession. Por ejemplo a 99999 y así seguro que se completará al 100% toda la importación.
Subir fichero bigdump.php al hosting
Ya preparado el fichero bigdump, nos conectaremos con nuestro programa FTP a nuestro hosting y creamos una carpeta /tmp en la raíz.
Dentro de la carpeta /tmp subiremos el fichero bigdump.php y la base de datos a importar.
Lanzar BigDump
Una vez subidos los 2 ficheros, entraremos a la dirección de nuestra web + /tmp/bigdump.php. Es decir:
http:// www. miweb. com/tmp/bigdump.php
Nos saldrá una imagen como la siguiente:
Pulsamos en el botón empezar importación.
Esperamos el tiempo necesario para que se complete la importación de la base de datos. Este tiempo dependerá del tamaño de la base de datos, cuanto más grande sea, más tiempo esperaremos.
Una vez completado, nos aparecerá el siguiente mensaje:
Ya tendremos la base de datos importada en nuestro hosting sin problemas de limitación del hosting ni nada por el estilo.
Espero que os sea útil 🙂 Si tenéis cualquier duda o problema, no dudéis en comentar. ¡Mucha suerte!
44 respuestas a «Cómo importar base de datos grandes en phpMyAdmin»
Script muy interesante,
lástima no haberlo conocido antes!.
Hace tiempo tuve que importar la base de datos de Prestashop de un ecommerce de dropshipping con más de 100.000 referencias, y hasta que conseguí dividirlo en trozos que el servidor web pudiese importar sin saltar por timeout, perdí muchas horas probando.
Gracias por el aporte David,
Feliciano
Muchas gracias por el comentario Feliciano, espero que le sirva de ayuda 🙂
Una locura el importar más de 100.000 referencias la verdad
Saludos
Hola david buen post pero tengo una duda como puedo subir una base de datos con Bigdumm al servidor local Xammp, me da errores y he cambiado los parametros de php.ini y nada, de tiempo, es para hacer pruebas para no hacerlas en la web en produccion. Gracias
Hola Jose Mª,
¿Podrías enviarme una captura de los errores que saltan?
Gracias,
Un saludo
Hola,
No pude obtener el archivo.
Buenos días Francisco,
Lo puedes descargar de aquí: https://www.ozerov.de/bigdump.zip
Saludos 😉
Hola buenos dias tengo problemas para importar la base de datos e probado tu script y al empezar con la importacion me da un error.
Si me pudieras echar un cable amigo
Buenas tardes Alberto,
¿Qué error te da? ¿Puedes subir una captura del error?
Ya me dices,
Saludos
Hola David
El script y las instrucciones de este post no son interesantes…..son GENIALES,
Tenía el problema con un BD inmensa y tu post me ayudó totalmente.
Gracias
Me alegro que te haya sido útil Julio : )
Yo lo suelo utilizar mucho para hacer copias de producción a test y viceversa.
Saludos 😉
no se cual seria mi archivo de volcado aqui cual pongo
$filename = “the_file_you_wish_to_execute”;
estoy exportando mi sitio wordpress a localhost
No hace falta tocar esa variable, automaticamente la detectará bigdump si has subido tu base datos, pero si le quieres decir cual base de datos a importar tendrás que añadir en esa variable la ruta de tu bbdd.
Saludos 🙂
Hola. Muy interesante. Se puede utilizar para exportar datos desde el servidor a localhost?
Buenas Maria,
Así es, también se puede realizar ese mismo paso, habría que cambiar la URL de la llamada a bigdump por la de localhost.
Saludos
Tira error «Warning: POST Content-Length of 143298068 bytes exceeds the limit of 8388608 bytes in Unknown on line 0»
¿No funciona con bases mayores a los 8MB?
Buenos días Joel,
¿Lo estás haciendo en local o en un servidor?
Saludos
Gracias! me sirvió mucho!
Me dá un error al importar la base de datos, Error at the line 36: ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’Stores details about batches (processes that run in…’;
Hola Juan Manuel,
¿Puedes subir una captura del problema?
Un saludo
Hola tengo un campo tipo longblob y no lo puede cargar por el tamaño del campo que puedo hacer es en local , manda error pero si le quito ese campo si lo hace bien
Buenas! Me da el siguiente error:
Error at the line 2527: INSERT INTO `ps_customer` VALUES (… aquí todos los datos de la bbdd…); Query: INSERT INTO `ps_customer` VALUES (…idem…);
MySQL: Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘newsletter_date_add’ at row 1
Stopped on error
Son mas de 190Mb de base de datos.
Espero pueda ayudarme.
Gracias
Buenos días Marcos,
Es por la versión de la base de datos que no acepta el valor ‘0000-00-00 00:00:00’, sustituye todos los valores de la base de datos ‘0000-00-00 00:00:00’ por ‘1995-10-10 10:10:10’ y listo ya te dejará importar la nueva base de datos,
Ya me dices,
Un saludo 😀
Hola David:
Mi base de datos pesa 70mb en la que tengo un moodle. Me he instalado el xampp y le he cambiado la configuración para admitir bases de datos grandes, pero solo se han abierto 11 tablas de las multiples que hay.
Porque aunque logre abrirla bien con el xamp cuando la tenga que volver a subir al sitio web no me dejará porque estan limitadas a 50mb incluso los hosting de pago.
Quiero preguntarte si este proceso podria solucionar mi problema, para poder recuperarla.
Buenos días José Luis,
Así es, con este proceso he importado base de datos de más de 1GB, por lo que funciona perfectamente,
Saludos 🙂
Para subir la al xampp serian así los datos?
$db_server = ‘localhost’;
$db_name = ‘base_datos_moodle_prova’;
$db_username = ‘root@localhost’;
$db_password = »;
En la password, que hay que poner? no te pide nada
Otra cosa la version del php era del 5 y en el xamp marca 7 tiene que ver?
También he puesto los archivos en la carpeta htdocs y
el error que me ha puesto ha sido:
¡Objeto no localizado!
No se ha localizado la URL solicitada en este servidor. Si usted ha introducido la URL manualmente, por favor revise su ortografía e inténtelo de nuevo.
Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.
Error 404
localhost
Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.0
Muchas gracias,…. por si me puedes ayudar.
Hola David,he puesto ahora en el sitio web la carpeta tmp y los archivos bigdump.php y la base de datos, pero me sale:
BigDump: Staggered MySQL Dump Importer v0.36b
Database connection failed due to Host ‘198.91.87.130’ is not allowed to connect to this MySQL server
Edit the database settings in BigDump configuration, or contact your database provider.
Start from the beginning (DROP the old tables before restarting)
© 2003-2015 Alexey Ozerov
A vore si pots ajudar-me en els dos missatges: Moltes gràcies!!!
Voy un poquito mas , pero ahora me sales:
BigDump: Staggered MySQL Dump Importer v0.36b
Procesando archivo: localhost.sql
A partir de la línea: 1
Error en la línea 24: CREAR BASE DE DATOS SI NO EXISTE `moodle37_mood153` CONFIGURACIÓN DE CARACTERES POR DEFECTO latin1 COLLATE latin1_swedish_ci;
Consulta: –
–
CREAR BASE DE DATOS SI NO EXISTE `moodle37_mood153` CONFIGURACIÓN DE CARACTERES PREDETERMINADOS latin1 COLLATE latin1_swedish_ci
MySQL: Acceso denegado para el usuario ‘moodle37_jo’ @ ‘localhost’ a la base de datos ‘moodle37_mood153’
Detenido por error
Comenzar desde el principio (DROP las tablas antiguas antes de reiniciar)
© 2003-2015 Alexey Ozerov
Muy buen aporte, te cuento mi experiencia, ojalá alguien me pueda ayudar, sucede que tengo 12 millones de registros que al subir en un hosting reseller con el bigdump me sube de 30 a 49 min, me resultó muy útil, pero ahora que tengo un vsp la subida se me hizo una eternidad como 48 horas, la diferencia es demasiada.
Hola Cristhian,
No he llegado a tener que subir una base de datos tan grande 🙂 No puedo ayudarte en este punto.
Saludos
Hola David;
Muy interesante tu post.
Sólo que tengo un problema con una BBDD que es demasiado grande (7GB), he intentado importarla con tu herramienta y me da el siguiente error…
I can’t seek into 1234.sql
Pregunto: Es posible que pueda exportar una BBDD de esas dimensiones ? O es mucho pedir?
Gracias
Buenos días Naiara,
Puedes dividir esa BBDD por partes, yo he importado BBDD de 4GB y ha funcionado.
Un saludo
Hola, me sucede lo siguiente:
Error en la línea 75: (130, 1, 2, 0, ‘U’, 1, ‘Jose’);
Consulta: –
–
INSERTAR EN…
…
…
(130, 1, 2, 0, ‘U’, 1, ‘Jose’)
MySQL: Duplique la entrada ‘1’ para la clave ‘PRIMARIA’
DETENIDO POR ERROR
¿Cuál podría ser la solución?
Muchas gracias!!
Hola Charls,
Mira en que tabla salta el error y exporta la base de datos sin esa tabla y luego sólo con esa tabla.
Prueba y me dices,
Saludos
saludos, a mi me da este error
413 Request Entity Too Large
Buenas Karel,
¿Qué capacidad es la base de datos?
Saludos
Funcionara con una base de datos sql que pesa aproximadamente 5GB? gracias!
Buenas Felipe,
Por supuesto, yo he realizado importaciones de BBDD más grandes 😀
Un saludo
Hola….
tengo una base de datos para una tarea, la descargue, es asignada por mi maestro, pero no me deja leer los datos en ella, ¿que puedo hacer?
Buenas Fernando,
No entiendo muy bien la consulta :S
Uff!! Excelente código, está estupendo mil felicitaciones amigo, 🥇💯
Muchas gracias Heiner, me alegra que te sirva para importar base de datos grande 🙂
el scrip que se sube, es completo, me refiero a sql desde la creacion de la bd o solo las tablas , o solo el insert?
Hola Javier,
El script lanza todas las consultas SQL del fichero subido, ya sean inserts, drop, deletes, etc
Saludos