phpMyAdmin es una excelente herramienta para administrar bases de datos mySQL con una interfaz visual, sin necesidad de utilizar comandos desde un terminal.

Para proyectos CMS como WordPress, una de las tareas más cotidianas que realizamos con phpMyAdmin es la de exportar e importar bases de datos, ya sea desde un proyecto local al servidor final o viceversa.

Pero existen limitaciones o restricciones que pueden impedir la importación de una base de datos SQL a través de phpMyAdmin generalmente ocasionados por el tamaño de esta.

Artículo disponible en vídeo por si prefieres seguirlo de este modo:

Restricción en el tamaño de subida de los archivos.

Los servidores, sobre todo los compartidos, definen un tamaño máximo de carga de archivos al servidor desde el navegador web, dependiendo del servidor, este tamaño puede ir desde los 8 hasta los 512MB. Si nuestra base de datos supera este tamaño ya tendremos el primer problema.

Tiempo de ejecución PHP

Para realizar la importación del archivo SQL a través de phpMyAdmin, se ejecuta un script PHP que recompone todas las tablas y registros de la base de datos. Normalmente los servidores establecen un tiempo limitado para las ejecuciones PHP, de forma que un proceso erróneo o infinito no bloquee los recursos del servidor demasiado tiempo.

Si el tiempo de importación supera este límite, seguramente obtendremos un error y no terminaremos de importar la base de datos. Dependiendo del estado de la interrupción, es posible que volviendo a cargar el archivo SQL, continúe la importación por donde iba, pero no estaremos exentos de posibles errores.

Importar el respaldo SQL directamente desde un terminal mySQL

Para los casos en los que sea imposible realizar la importación desde phpMyAdmin, tenemos que realizar esta acción directamente desde un terminal mySQL.

Si tu servidor es compartido no tendrás acceso a un terminal mySQL y la importación tendrán que realizarla desde tu proveedor de hosting.

Dependerá de la calidad de tu soporte técnico qué tan rápido hagan esta tarea (si es que la hacen). Seguramente te pedirán que subas la base de datos por FTP a algún directorio e indiques a qué base de datos quieres hacer el respaldo.

Si posees un servidor virtual o dedicado seguramente podrás acceder a este terminal (consulta la documentación de tu hosting).

Primero crea la base de datos vacía (esto puedes hacerlo desde phpMyAdmin como siempre).

Ahora desde un terminal mySQL conéctate a tu base de datos vacía:

mysql -u user -p base_de_datos

Donde «user» es tu usuario mySQL y «base_de_datos» el nombre de tu base de datos vacía.

Ahora te pedirá la contraseña del usuario de mySQL.

Una vez conectado especificamos la ruta al archivo de respaldo. Puedes subirlo por FTP a algún directorio de tu servidor.

mysql source /ruta_al_archivo_sql/archivo.sql

En este momento comenzará la importación, mucho más rápido que através de phpMyAdmin, pues aquí trabajamos directamente con el motor de mySQL sin scripts PHP de por medio.

Salvo que exista algún error en una de las tablas, no debería haber ningún problema. A veces he tenido errores de importación por culpa de tablas que han creado plugins de terceros, sobre todo plugins que realizan algún tipo de seguimiento diario, como los monitores de actividad.

Hay que tener cuidado con este tipo de plugins, pues sin darnos cuenta pueden estar llenando nuestra base de datos poco a poco, haciendo que posteriormente una importación sea mucho más pesada o más propensa a errores. Para este tipo de plugins siempre intento seleccionar que los registros se hagan a un archivo o log externo y no en la base de datos.

Importar SQL desde XAMPP

Si trabajamos con un servidor local como XAMPP y necesitamos importar una gran base de datos para trabajar desde nuestro PC, podemos realizar la misma importación desde un terminal mySQL.

En este caso tenemos que posicionarnos en la ruta donde se encuentra el servidor mySQL en XAMPP:

/opt/lampp/bin/

Dentro de esta ruta tecleamos la orden:

./mysql -u root -p base_de_datos

Si no hemos especificado ninguna contraseña para root, cuando solite la contraseña simplemente pulsamos Intro.

Localizamos donde está el archivo SQL:

./mysql source /home/dani/Documentos/base_de_datos.sql

Y que comience la importación. Esto nos puede resultar muy útil si nos encargan llevar un nuevo proyecto y necesitamos descargarlo a nuestro servidor local para hacer los cambios «offline» y la base de datos es demasiado pesada.

Espero como siempre que os haya resultado útil este post y nos vemos en el siguiente 😉