Cómo importar una base de datos MySQL grande en cPanel (phpMyAdmin o SSH)
¿Por qué falla la importación de una base de datos grande en cPanel?
Si has intentado importar base datos mysql grande desde phpMyAdmin, seguramente te has encontrado con un mensaje de error o un proceso que se queda congelado. Esto es mucho más común de lo que parece y tiene una explicación técnica muy sencilla.
El problema principal es que phpMyAdmin, la herramienta que usas desde cPanel, tiene un límite de upload impuesto por el servidor. Este límite suele estar entre 2 MB y 50 MB, dependiendo de la configuración de tu hosting. Si tu archivo .sql (o comprimido en .zip o .gz) supera ese tamaño, el servidor simplemente lo rechaza o lo corta a mitad de camino.
Además, aunque consigas subir el archivo, los servidores tienen un tiempo máximo de ejecución para los scripts. Si la importación tarda más de 30 o 60 segundos, el proceso se detiene. Por eso, una base de datos de 500 MB o 1 GB no se puede importar con los métodos tradicionales.
Pero no te preocupes. Existen varias soluciones efectivas que van desde ajustar la configuración hasta usar herramientas más potentes. Vamos a verlas todas, desde la más sencilla hasta la más avanzada.
Solución 1: Aumentar el límite de upload en phpMyAdmin
Antes de rendirte con phpMyAdmin, puedes intentar aumentar el límite. Esto no siempre funciona porque el límite lo controla el servidor, pero hay un truco que puedes probar.
Pasos para intentar subir el límite
- Entra a tu cPanel y busca la sección "Archivos".
- Haz clic en "Administrador de archivos".
- Navega hasta la carpeta
public_html(o la raíz de tu sitio). - Busca un archivo llamado
.htaccess. Si no existe, créalo con un editor de texto. - Añade estas líneas al final del archivo:
php_value upload_max_filesize 512M
php_value post_max_size 512M
php_value max_execution_time 300
php_value max_input_time 300
- Guarda los cambios y vuelve a intentar la importación desde phpMyAdmin.
[WARNING]: Este método solo funciona si tu hosting usa Apache y permite sobrescribir la configuración de PHP desde .htaccess. En muchos servidores compartidos, esto no está permitido. Si no funciona, no insistas, pasa a la siguiente solución.
Solución 2: Dividir la base de datos en partes más pequeñas
Si tu base de datos tiene entre 50 MB y 200 MB, puedes dividirla en varios archivos más pequeños e importarlos uno a uno. Esto es tedioso pero efectivo.
Cómo dividir tu archivo SQL
- Descarga el archivo
.sqloriginal a tu computadora. - Ábrelo con un editor de texto avanzado como Notepad++ (Windows) o Sublime Text (Mac/Linux).
- Busca las líneas que contienen
CREATE TABLEyINSERT INTO. Cada una de estas líneas marca el inicio de una tabla. - Copia y pega las instrucciones de cada tabla en archivos separados. Asegúrate de incluir la línea
CREATE TABLEy todos susINSERTcorrespondientes. - Guarda cada archivo con un nombre descriptivo, como
tabla_usuarios.sql,tabla_productos.sql, etc.
Importar cada parte
- Entra a phpMyAdmin desde cPanel.
- Selecciona tu base de datos en el menú de la izquierda.
- Haz clic en la pestaña "Importar".
- Sube el primer archivo y haz clic en "Continuar".
- Repite el proceso con los demás archivos hasta completar toda la base de datos.
[TIP]: Si alguna tabla es demasiado grande incluso dividida, usa el método de compresión. Sube el archivo en formato .gz o .zip, ya que phpMyAdmin puede descomprimirlo automáticamente y ocupa menos espacio en la subida.
Solución 3: Usar BigDump, el importador que no se cansa
BigDump es una herramienta gratuita creada específicamente para importar base datos mysql grande sin que el servidor se queje. Funciona de una manera muy inteligente: en lugar de subir el archivo completo, lo procesa por fragmentos, reiniciando el script cada cierto tiempo.
Cómo instalar y usar BigDump
- Descarga BigDump desde su sitio oficial:
https://www.ozerov.de/bigdump/. - Descomprime el archivo y sube
bigdump.phpa tu carpetapublic_htmlusando el Administrador de archivos de cPanel. - Abre
bigdump.phpcon un editor de texto y busca la línea que dice$db_server. Configúralo con los datos de tu base de datos:
$db_server = "localhost";
$db_name = "tu_nombre_de_base";
$db_username = "tu_usuario";
$db_password = "tu_contraseña";
- Guarda los cambios.
- Sube tu archivo
.sql(sin comprimir o en.gz) a la misma carpeta donde pusistebigdump.php. - Abre tu navegador y visita
https://tudominio.com/bigdump.php. - Verás una interfaz sencilla. Haz clic en el archivo que quieres importar.
- BigDump empezará a importar por partes. Puede que necesites refrescar la página varias veces si la base es muy grande. No te asustes, es normal.
[INFO]: BigDump es ideal para bases de datos de 200 MB a varios GB. Es la herramienta preferida por muchos administradores de sistemas porque no requiere conocimientos avanzados.
Solución 4: Importar MySQL por SSH (el método profesional)
Si tienes acceso a SSH (Shell), esta es la opción más rápida y fiable para importar base datos mysql grande. Es el método que usan los profesionales y no tiene límites de tiempo ni de tamaño.
Requisitos previos
- Necesitas un cliente SSH. En Windows puedes usar PuTTY, y en Mac/Linux la terminal nativa.
- Ten a mano tus credenciales de SSH (usuario, contraseña y puerto, normalmente el 22).
- Sube tu archivo
.sqlal servidor. Puedes hacerlo con un cliente FTP como FileZilla o desde el Administrador de archivos de cPanel.
Pasos para importar por SSH
- Abre tu cliente SSH y conéctate a tu servidor:
ssh usuario@tudominio.com
- Introduce tu contraseña cuando te la pida.
- Navega hasta la carpeta donde subiste el archivo
.sql. Por ejemplo:
cd public_html
- Ahora ejecuta el comando de importación. Sustituye
tu_base_de_datos,tu_usuarioyarchivo.sqlpor tus datos:
mysql -u tu_usuario -p tu_base_de_datos < archivo.sql
- Te pedirá la contraseña de tu base de datos. Escríbela y pulsa Enter.
- Espera a que termine. No verás ningún mensaje si todo va bien. Simplemente vuelve al prompt del sistema.
[TIP]: Si tu archivo está comprimido en .gz, usa este comando:
gunzip < archivo.sql.gz | mysql -u tu_usuario -p tu_base_de_datos
[WARNING]: Si tu base de datos es realmente enorme (más de 5 GB), te recomiendo usar screen o tmux para que la importación continúe aunque cierres la sesión SSH. Si no sabes qué es esto, busca "screen mysql import" en Google y verás tutoriales sencillos.
Solución 5: Usar Syspanel (para usuarios de HestiaCP)
Si tu hosting utiliza Syspanel (que es el antiguo HestiaCP), el proceso es similar al de cPanel pero con algunas diferencias. Recuerda que el acceso a Syspanel se hace por el puerto 2106.
Cómo importar con Syspanel
- Abre tu navegador y visita
https://tudominio.com:2106. - Inicia sesión con tus credenciales de administrador.
- Ve a la sección de "Bases de Datos".
- Selecciona la base de datos donde quieres importar.
- Busca la opción de "Importar" o "Subir archivo".
- Sube tu archivo
.sqly espera a que termine.
[INFO]: Syspanel tiene una interfaz más moderna que cPanel y suele tolerar archivos más grandes. Sin embargo, si tu archivo supera los 100 MB, te recomiendo usar BigDump o SSH directamente, ya que el límite de upload sigue existiendo.
Solución 6: Optimizar el archivo SQL antes de importar
A veces el problema no es el tamaño, sino la estructura del archivo. Hay algunas optimizaciones que puedes hacer para que la importación sea más rápida y ligera.
Quitar comentarios y espacios innecesarios
Los archivos .sql suelen tener muchos comentarios (líneas que empiezan con -- o /* */). Puedes eliminarlos con un editor de texto para reducir el tamaño.
Usar INSERT múltiple
Si tu archivo tiene muchas líneas INSERT INTO separadas, puedes combinarlas en una sola. Por ejemplo:
INSERT INTO tabla (col1, col2) VALUES (1, 'a'), (2, 'b'), (3, 'c');
Esto reduce el número de consultas y acelera la importación.
Desactivar claves foráneas temporalmente
Si tu base de datos tiene muchas relaciones, puedes desactivar las comprobaciones de claves foráneas al inicio del archivo:
SET FOREIGN_KEY_CHECKS = 0;
Y al final:
SET FOREIGN_KEY_CHECKS = 1;
[TIP]: Puedes hacer esto con un simple editor de texto. No necesitas ser programador, solo buscar y reemplazar.
Preguntas frecuentes (FAQ)
¿Cuál es el límite de upload en cPanel?
El límite upload cpanel varía según el proveedor de hosting. La mayoría de los servidores compartidos tienen un límite de 2 MB a 64 MB. Puedes verlo en phpMyAdmin en la sección de "Importar", donde dice "Tamaño máximo: X MB".
¿Puedo importar una base de datos de 1 GB con phpMyAdmin?
No, es prácticamente imposible. phpMyAdmin no está diseñado para archivos tan grandes. Usa BigDump o SSH.
¿Qué hago si no tengo acceso SSH?
Si tu plan de hosting no incluye SSH, tienes dos opciones: contactar con tu proveedor para que te lo active, o usar BigDump, que no requiere SSH.
¿BigDump es seguro?
Sí, es una herramienta muy utilizada y fiable. Solo asegúrate de descargarla desde su sitio oficial y elimina el archivo bigdump.php después de usarla para evitar accesos no autorizados.
¿Qué hago si la importación se corta a mitad?
Si usas SSH, puedes repetir el comando y se reanudará desde donde se quedó (si la base de datos no tiene restricciones). Con BigDump, simplemente refresca la página y continúa. Con phpMyAdmin, tendrás que empezar de nuevo.
Resumen y recomendación final
Para importar base datos mysql grande en cPanel, el método más fiable y profesional es SSH. Si no tienes acceso a SSH, BigDump es tu mejor aliado. phpMyAdmin solo deberías usarlo para bases de datos pequeñas, de menos de 50 MB.
Recuerda siempre:
- Haz una copia de seguridad antes de importar.
- Comprueba que los datos de conexión son correctos.
- Si usas Syspanel, recuerda que el puerto es el 2106.
- Elimina los archivos temporales (como
bigdump.php) después de usarlos.
Con estas técnicas, podrás importar bases de datos de cualquier tamaño sin frustrarte. Si tienes dudas, deja un comentario y te ayudaré encantado. ¡Buena suerte con tu importación!
