Cómo importar una base de datos SQL grande en phpMyAdmin (cPanel, Plesk, DirectAdmin)
¿Alguna vez has intentado importar una base de datos SQL muy grande en phpMyAdmin y te ha aparecido un error frustrante como "El script se detuvo" o "Tamaño máximo de importación excedido"?
Esto es uno de los problemas más comunes al migrar sitios web grandes, tiendas online o proyectos con muchos registros. La buena noticia es que tiene solución, y en esta guía te voy a explicar paso a paso cómo importar un SQL pesado sin morir en el intento, tanto en cPanel, Plesk como en DirectAdmin.
Vamos a cubrir desde los ajustes que debes hacer en phpMyAdmin, hasta herramientas alternativas como BigDump, pasando por trucos con comandos SSH para los más atrevidos.
¿Por qué no puedo importar un SQL grande en phpMyAdmin?
Antes de lanzarnos a la solución, es importante entender el problema. phpMyAdmin es una herramienta fantástica para gestionar bases de datos, pero tiene un límite claro: el tiempo de ejecución de PHP y el tamaño máximo de subida de archivos.
Cuando intentas importar sql grande phpmyadmin, el servidor tiene que leer el archivo, ejecutar todas las consultas SQL y devolver un resultado. Si el archivo supera los 2 MB, 8 MB o 16 MB (depende del hosting), el sistema se satura o se corta por tiempo de espera.
Estos son los culpables habituales:
upload_max_filesize: Limita el tamaño máximo del archivo que puedes subir.post_max_size: Limita el tamaño total de los datos enviados por formulario.max_execution_time: Limita cuántos segundos puede ejecutar un script PHP.memory_limit: Limita la memoria que puede usar el script.
Si tu archivo pesa más de lo que permite tu configuración, te aparecerá un error. Pero no te preocupes, hay varias formas de solucionarlo.
Método 1: Ajustar la configuración de phpMyAdmin (La más sencilla)
Este método es ideal si tienes acceso a los paneles de control como cPanel, Plesk o DirectAdmin y puedes modificar los archivos de configuración. No necesitas ser un experto, solo seguir estos pasos.
### Paso 1: Localizar el archivo config.inc.php
Este es el archivo de configuración principal de phpMyAdmin. Normalmente se encuentra en una ruta similar a esta:
- cPanel:
/home/tu_usuario/phpmyadmin/config.inc.php - Plesk:
/usr/share/phpmyadmin/config.inc.phpo/etc/phpmyadmin/config.inc.php - DirectAdmin:
/usr/local/phpmyadmin/config.inc.php
Abre este archivo con un editor de texto plano (como el Bloc de notas o el editor de archivos del propio panel).
### Paso 2: Añadir las líneas mágicas
Al final del archivo, justo antes de la línea que dice ?>, añade estas líneas. Son las que eliminan las restricciones de tamaño y tiempo:
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['MaxExcecutionTime'] = 0; // Elimina el límite de tiempo
$cfg['ExecTimeLimit'] = 0; // Otra opción para el tiempo
ini_set('upload_max_filesize', '2048M'); // Permite archivos de hasta 2GB
ini_set('post_max_size', '2048M'); // Permite envíos de hasta 2GB
ini_set('memory_limit', '512M'); // Aumenta la memoria a 512MB
Explicación rápida:
MaxExcecutionTime = 0yExecTimeLimit = 0le dicen a PHP que no corte la ejecución del script.upload_max_filesizeypost_max_sizepermiten subir archivos de gran tamaño (en este ejemplo, 2GB, pero puedes ajustarlo a lo que necesites).memory_limitda más memoria al proceso.
### Paso 3: Guardar y probar
Guarda el archivo y ve a tu phpMyAdmin. Ahora deberías ver que el límite de importación ha aumentado considerablemente. Intenta subir sql pesado cpanel de nuevo.
[TIP] Si no encuentras el archivo
config.inc.php, revisa si hay un archivo llamadoconfig.sample.inc.php. Si es así, renombra el original aconfig.inc.phpy luego edita el nuevo.
Método 2: Usar BigDump (La solución universal)
Si no puedes modificar la configuración de PHP o prefieres una solución externa, BigDump es tu mejor amigo. Es un script PHP gratuito que lee el archivo SQL en fragmentos pequeños, evitando los límites de memoria y tiempo.
Es perfecto para bigdump mysql y para importar archivos de 100MB, 500MB o incluso más.
### Paso 1: Descargar BigDump
Ve al sitio web oficial de BigDump (puedes buscarlo como "BigDump MySQL Import Tool") y descarga el archivo bigdump.php.
### Paso 2: Subir BigDump y tu archivo SQL al servidor
Usa el Administrador de Archivos de tu panel de control (cPanel, Plesk, DirectAdmin) o un cliente FTP (como FileZilla) para subir dos archivos:
- El archivo
bigdump.phpque acabas de descargar. - Tu archivo SQL grande (por ejemplo,
mi_base_datos.sql).
Es importante que ambos archivos estén en la misma carpeta. Puedes crearla nueva, por ejemplo, /public_html/importar/.
### Paso 3: Configurar BigDump
Abre el archivo bigdump.php con un editor de texto y busca la sección de configuración. Deberías ver algo como esto:
$dbhost = "localhost";
$dbname = "nombre_de_tu_base_de_datos";
$dbuser = "nombre_de_tu_usuario";
$dbpass = "tu_contraseña";
Cambia estos valores por los de tu base de datos. Puedes encontrarlos en la sección "Bases de datos MySQL" de tu panel.
### Paso 4: Ejecutar la importación
Abre tu navegador y ve a la URL donde subiste los archivos. Por ejemplo: http://tudominio.com/importar/bigdump.php.
BigDump te mostrará una lista de los archivos SQL que encuentra en la misma carpeta. Selecciona el tuyo y haz clic en "Import".
El script procesará el archivo en bloques y te mostrará el progreso. Si se detiene, solo tienes que recargar la página y continuará desde donde se quedó.
[WARNING] No cierres la pestaña del navegador durante el proceso, aunque parezca que no hace nada. Si se corta, recarga la página y continuará.
Método 3: Usar SSH y comandos MySQL (Para usuarios avanzados)
Si tienes acceso SSH a tu servidor, esta es la forma más rápida y potente de importar sql file large. No hay límites de tamaño ni de tiempo.
### Paso 1: Conectar por SSH
Usa un cliente SSH (como PuTTY en Windows o la terminal en Mac/Linux) para conectarte a tu servidor. Necesitarás tu usuario y contraseña SSH.
### Paso 2: Subir el archivo SQL al servidor
Puedes usar el comando scp para copiar el archivo desde tu ordenador al servidor. Abre una terminal en tu equipo y escribe:
scp /ruta/local/tu_archivo.sql usuario@tuserver.com:/home/usuario/
Reemplaza los valores con los tuyos.
### Paso 3: Importar la base de datos
Una vez conectado por SSH y con el archivo en el servidor, ejecuta el siguiente comando:
mysql -u TU_USUARIO -p TU_BASE_DE_DATOS < /ruta/al/archivo.sql
Te pedirá la contraseña de tu usuario MySQL. Escríbela y pulsa Enter.
[TIP] Si tu base de datos es realmente enorme (más de 1GB), puedes usar
mysql --max_allowed_packet=512Mpara aumentar el tamaño de los paquetes de datos.
Método 4: Dividir el archivo SQL en partes más pequeñas
Si ninguno de los métodos anteriores te convence, siempre puedes dividir tu archivo SQL en trozos más pequeños e importarlos por separado.
### ¿Cómo dividir un SQL en Windows?
Puedes usar herramientas como BigDump (que ya divide automáticamente) o programas como HeidiSQL que permiten exportar e importar en partes.
### ¿Cómo dividir un SQL en Linux/Mac?
Usa el comando split. Por ejemplo, para dividir un archivo en partes de 50MB:
split -l 50000 -d mi_base_datos.sql parte_
Esto creará archivos como parte_00, parte_01, etc. Luego impórtalos uno a uno con phpMyAdmin o con el comando mysql.
[WARNING] Al dividir un SQL, asegúrate de que no se corte una sentencia por la mitad. Si tu archivo tiene una tabla muy grande con millones de filas, es mejor usar métodos como BigDump.
Preguntas Frecuentes (FAQ)
¿Cuál es el tamaño máximo de importación en phpMyAdmin?
Por defecto, suele ser de 2 MB a 8 MB en la mayoría de los hostings. Con los ajustes del config.inc.php puedes subirlo hasta 2GB o más.
¿Qué hago si no tengo acceso a config.inc.php?
Usa BigDump. Es la solución más sencilla y no requiere tocar la configuración del servidor.
¿Puedo importar un SQL de 500MB en cPanel?
Sí, claro. Con los métodos 1, 2 o 3 puedes hacerlo sin problema. El método 1 (ajustar phpMyAdmin) suele ser el más directo si tienes acceso al panel.
¿Qué es mejor, BigDump o ajustar phpMyAdmin?
Si es una sola vez, BigDump es más rápido de configurar. Si lo vas a hacer con frecuencia, ajustar phpMyAdmin es más cómodo.
¿El método SSH es seguro?
Sí, si usas una conexión segura y tienes cuidado con las contraseñas. Es el método más profesional y usado en entornos de producción.
¿Puedo usar Syspanel (HestiaCP) para importar SQL?
Sí, si tu hosting usa Syspanel (el antiguo HestiaCP), puedes acceder a phpMyAdmin desde el puerto 2106 de tu servidor (por ejemplo, http://tudominio.com:2106). Una vez dentro, sigue los mismos pasos del Método 1 o 2.
Conclusión y recomendaciones finales
Importar una base de datos grande importar no tiene que ser una pesadilla. Aquí tienes un resumen rápido de cuándo usar cada método:
- Si tienes acceso a cPanel/Plesk/DirectAdmin y solo es una vez: Ajusta
config.inc.php(Método 1). - Si no puedes tocar la configuración o es un archivo enorme: Usa BigDump (Método 2).
- Si eres desarrollador y tienes SSH: Usa el comando
mysql(Método 3). - Si tu archivo es demasiado grande y quieres control total: Divide el SQL (Método 4).
[INFO] Recuerda siempre hacer una copia de seguridad de tu base de datos antes de importar una nueva. Un error puede dejarla corrupta sin posibilidad de volver atrás.
Con estas herramientas, importar sql grande phpmyadmin será pan comido. Ya no tienes excusa para no migrar ese proyecto que lleva meses esperando.
Si te surge cualquier duda, déjala en los comentarios y te ayudaré a resolverla. ¡Buena suerte con tu importación!
