Un importador que se detiene al 30 %, devuelve 504 o queda en blanco no aclara si MySQL rechazó una sentencia, PHP agotó su tiempo o el proxy dejó de esperar. Repetirlo puede dejar tablas parciales y complicar el siguiente intento.
Congela el origen de forma coherente
Elige una ventana adecuada. En una tienda o membresía, decide cómo pausar o reconciliar escrituras. Registra nombre, prefijo, tamaño, número de tablas, motores y hora de exportación.
No combines exportaciones de momentos distintos sin un delta planificado. Mantén el origen disponible para rollback hasta verificar el destino.
Averigua qué ocupa la base
Localiza las tablas mayores. Logs, sesiones, eventos de analítica, transients, historial de Action Scheduler y tablas abandonadas pueden dominar.
Elimina datos solo si conoces su función y retención. Optimizar durante una emergencia cambia el origen; suele ser más seguro migrar y limpiar después con otra copia.
Genera una exportación fiable
Prefiere backup del hosting, WP-CLI o mysqldump a una sola petición web. La compresión reduce transferencia, no corrige errores SQL.
mysqldump --single-transaction --quick --default-character-set=utf8mb4
database_name | gzip > wordpress.sql.gz
--single-transaction ayuda con tablas transaccionales, pero no garantiza ausencia de bloqueos en todos los motores. No escribas contraseñas en historiales compartidos.
Si existen tablas MyISAM u otros motores no transaccionales, documenta cuáles son y decide un bloqueo breve o una ventana sin escrituras para obtener coherencia. Revisa el final del volcado y el código de salida: que exista un archivo grande no demuestra que mysqldump terminara correctamente. Conserva también las advertencias, porque pueden revelar vistas, triggers o privilegios omitidos.
Comprueba espacio e integridad
El destino puede necesitar simultáneamente el archivo comprimido, SQL expandido, datos MySQL y temporales. Confirma bytes e inodos suficientes.
Transfiere por un canal fiable y compara:
sha256sum wordpress.sql.gz
Un checksum coincidente demuestra que llegó igual, no que la exportación original fuera completa. Conserva el valor en el registro.
Importa desde el servidor
Crea una base vacía con charset y collation previstos. Importa mediante shell o restauración del hosting para excluir límites PHP y del proxy.
gzip -dc wordpress.sql.gz | mysql database_name
Captura error estándar y código de salida. Si no hay shell, usa una herramienta consciente de SQL o pide soporte; dividir texto arbitrariamente puede cortar una sentencia.
Diagnostica el primer error real
Lee el primer error de MySQL. Puede deberse a paquetes, permisos, collations no admitidos, DEFINER, objetos duplicados, disco lleno o versiones distintas.
No aumentes todos los límites. Corrige la causa estrecha, recrea un destino limpio e importa una vez. Continuar sobre una base parcial mezcla filas antiguas y nuevas.
Demuestra que la base está completa
Compara tablas, filas importantes y registros recientes conocidos. Verifica prefijo y tablas fallidas. Después prueba login, contenido, búsqueda, referencias de medios, tareas programadas y escrituras.
En sitios transaccionales, reconcilia pedidos y formularios cercanos a la congelación. Una portada visible es una prueba demasiado débil.
Completa cambios de URL y entorno
Ejecuta una simulación compatible con serialización antes de sustituir dominios o rutas. Actualiza credenciales con seguridad e inspecciona plugins que almacenen rutas absolutas.
Mantén los errores detallados en privado. Retira archivos SQL de carpetas web y revoca usuarios o permisos temporales al finalizar.
Haz repetible la migración
Mantén copias externas, tendencias de tamaño y pruebas periódicas de restauración. El mantenimiento puede podar tablas operativas aprobadas antes de que sean enormes y verificar el tiempo de recuperación.
El resultado correcto es una transferencia medida y reversible, no que una barra alcance el 100 %.