Importar una base de datos grande en MySQL o MariaDB
Categoría:
Soporte y Ayuda, Sysadmin
Fecha:
19/06/2024
Cuando queremos importar una base de datos grande en MySQL o MariaDB, normalmente al utilizar phpMyAdmin podemos encontrarnos con problemas.
Cuando no aparecen problemas relacionados con los límites de PHP, aparecen problemas relacionados con los límites de MySQL o MariaDB. Es normal que nos encontremos errores 500 y timeouts, ya que, aunque phpMyAdmin dispone de una funcionalidad para importar bases de datos mediante un archivo SQL utilizando el navegador web, lo cierto es que no está pensado para subir archivos grandes.
Un truco que suele funcionar en algunos casos, siempre y cuando tengamos suficiente potencia de proceso en el hosting o servidor, es comprimir en un archivo .zip el archivo SQL; aunque esto tampoco es magia y si el dump de MySQL es demasiado grande, nos aparecerá algún error igualmente.
Lo ideal en estos casos es utilizar el acceso root y la terminal o consola de comandos para importar el dump SQL al motor de base de datos MySQL o MariaDB.
Llegados a este punto, pueden darse dos casos completamente diferentes:
Para este segundo caso, aquí vamos a ver como importar un SQL muy grande en MySQL o MariaDB sin errores.
En primer lugar, antes de acceder con el terminal y el usuario root al servidor por SSH, debemos crear la base de datos utilizando nuestro panel de control. En este caso estoy haciendo el ejemplo con un servidor VPS que utiliza RaiolaCP, el panel de control que utilizamos en nuestros servidores VPS optimizados actualmente:
Ahora que tenemos la base de datos creada, vamos a subir el archivo SQL al servidor.
En este caso vamos a utilizar el File Manager o Administrador de archivos de RaiolaCP, si utilizas cPanel también te recomiendo utilizar el File Manager de cPanel, ya que funciona muy bien.
El objetivo es tener el archivo subido, como puedes ver en este ejemplo, donde estoy subiendo una base de datos de más de 1,5 GB. Para subir un archivo tan grande mediante el navegador, en la configuración de PHP debemos permitirlo, en este caso he configurado 4GB de máximo y 3600 segundos de timeout de PHP.
Al finalizar, tendremos el archivo en el servidor y podremos verlo desde el File Manager:
Si tienes problemas para subir el archivo con el File Manager o gestor de archivos, puedes utilizar un cliente FTP como Filezilla para realizar la subida. Además, la ventaja de utilizar un cliente FTP es que nos mostrara el estado de la subida con una barra de progreso basada en porcentaje.
Antes de continuar, debes tener el archivo subido al servidor.
Cuando ya tengamos el archivo subido, nos vamos al terminal y vamos a autentificarnos.
Yo suelo utilizar Putty como cliente SSH, ya que me gusta bastante, es simple y completamente gratuito.
En primer lugar, vamos a navegar por las carpetas desde la terminal para dirigirnos a donde se encuentra el archivo que hemos subido anteriormente. En el caso de RaiolaCP o VestaCP es muy simple, ya que solo debemos ir a /home/ y entrar en la carpeta del usuario correspondiente, en mi caso lo he guardado en la raíz de la carpeta de usuario, que es a donde tiene acceso el usuario mediante FTP o File Manager.
Ahora vamos a construir el comando, teniendo en cuenta la estructura de carpetas y la base de datos que hemos creado previamente en esta guía. En primer lugar, indicamos con el parámetro U el usuario de la base de datos y con el parámetro P, la base de datos.
Tendremos que introducir la contraseña que hemos puesto al crear la nueva base de datos y ahora solo nos queda esperar a que termine:
Puede darte la impresión de que el proceso está parado, pero realmente no es así. Ten en cuenta que estás importando una base de datos muy grande y estas cosas llevan su tiempo en el servidor, sobre todo si estamos trabajando sobre un servidor en producción o con poca potencia.
Cuando el proceso finalice simplemente vamos a ver algo como esto:
Y desde phpMyAdmin podremos acceder a las tablas de la base de datos que acabamos de importar en nuestro servidor.
Recuerda que si tienes algún problema para importar una base de datos MySQL o MariaDB en un producto de alojamiento de Raiola Networks, simplemente tienes que contactar con nuestro departamento de soporte técnico 24/7 y te ayudaremos.
Cuando no aparecen problemas relacionados con los límites de PHP, aparecen problemas relacionados con los límites de MySQL o MariaDB. Es normal que nos encontremos errores 500 y timeouts, ya que, aunque phpMyAdmin dispone de una funcionalidad para importar bases de datos mediante un archivo SQL utilizando el navegador web, lo cierto es que no está pensado para subir archivos grandes.
Un truco que suele funcionar en algunos casos, siempre y cuando tengamos suficiente potencia de proceso en el hosting o servidor, es comprimir en un archivo .zip el archivo SQL; aunque esto tampoco es magia y si el dump de MySQL es demasiado grande, nos aparecerá algún error igualmente.
Lo ideal en estos casos es utilizar el acceso root y la terminal o consola de comandos para importar el dump SQL al motor de base de datos MySQL o MariaDB.
Llegados a este punto, pueden darse dos casos completamente diferentes:
- Que tengamos contratado un hosting compartido o un servidor VPS o dedicado administrado y no tengamos la posibilidad de realizar la importación por consola. En este caso debemos subir por FTP el SQL y crear la base de datos utilizando el panel de control, para posteriormente pedirle al soporte técnico del hosting que nos realice la importación desde consola.
- Otra opción es que tengamos un servidor VPS o servidor dedicado administrado por nosotros, como es el caso de los servidores VPS con VestaCP o RaiolaCP de Raiola Networks, que de forma predeterminada si el cliente no contrata administración, no traen administración.
Para este segundo caso, aquí vamos a ver como importar un SQL muy grande en MySQL o MariaDB sin errores.
Antes de nada, quiero aclarar que esta guía esta pensada para ser utilizada en servidores Linux, ya que son con los que trabajamos en Raiola Networks.
En primer lugar, antes de acceder con el terminal y el usuario root al servidor por SSH, debemos crear la base de datos utilizando nuestro panel de control. En este caso estoy haciendo el ejemplo con un servidor VPS que utiliza RaiolaCP, el panel de control que utilizamos en nuestros servidores VPS optimizados actualmente:
Ahora que tenemos la base de datos creada, vamos a subir el archivo SQL al servidor.
En este caso vamos a utilizar el File Manager o Administrador de archivos de RaiolaCP, si utilizas cPanel también te recomiendo utilizar el File Manager de cPanel, ya que funciona muy bien.
El objetivo es tener el archivo subido, como puedes ver en este ejemplo, donde estoy subiendo una base de datos de más de 1,5 GB. Para subir un archivo tan grande mediante el navegador, en la configuración de PHP debemos permitirlo, en este caso he configurado 4GB de máximo y 3600 segundos de timeout de PHP.
Al finalizar, tendremos el archivo en el servidor y podremos verlo desde el File Manager:
Si tienes problemas para subir el archivo con el File Manager o gestor de archivos, puedes utilizar un cliente FTP como Filezilla para realizar la subida. Además, la ventaja de utilizar un cliente FTP es que nos mostrara el estado de la subida con una barra de progreso basada en porcentaje.
Antes de continuar, debes tener el archivo subido al servidor.
Cuando ya tengamos el archivo subido, nos vamos al terminal y vamos a autentificarnos.
Yo suelo utilizar Putty como cliente SSH, ya que me gusta bastante, es simple y completamente gratuito.
En primer lugar, vamos a navegar por las carpetas desde la terminal para dirigirnos a donde se encuentra el archivo que hemos subido anteriormente. En el caso de RaiolaCP o VestaCP es muy simple, ya que solo debemos ir a /home/ y entrar en la carpeta del usuario correspondiente, en mi caso lo he guardado en la raíz de la carpeta de usuario, que es a donde tiene acceso el usuario mediante FTP o File Manager.
Ahora vamos a construir el comando, teniendo en cuenta la estructura de carpetas y la base de datos que hemos creado previamente en esta guía. En primer lugar, indicamos con el parámetro U el usuario de la base de datos y con el parámetro P, la base de datos.
mysql -u test_prueba -p test_prueba < db.sql
Tendremos que introducir la contraseña que hemos puesto al crear la nueva base de datos y ahora solo nos queda esperar a que termine:
Puede darte la impresión de que el proceso está parado, pero realmente no es así. Ten en cuenta que estás importando una base de datos muy grande y estas cosas llevan su tiempo en el servidor, sobre todo si estamos trabajando sobre un servidor en producción o con poca potencia.
Independientemente de que nuestro servidor utilice MySQL o MariaDB, el comando es el mismo, ya que MariaDB es un fork de MySQL.
Cuando el proceso finalice simplemente vamos a ver algo como esto:
Y desde phpMyAdmin podremos acceder a las tablas de la base de datos que acabamos de importar en nuestro servidor.
Recuerda que si tienes algún problema para importar una base de datos MySQL o MariaDB en un producto de alojamiento de Raiola Networks, simplemente tienes que contactar con nuestro departamento de soporte técnico 24/7 y te ayudaremos.
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *