Seleccionar página

Importar una base de datos grande a un servidor con phpMyAdmin

por | Oct 22, 2019 | Wordpress

En este artículo conoceremos algunos métodos para importar una base de datos grande a un servidor con phpMyAdmin. Hablamos de importar a un servidor externo donde tienes alojada la web, si lo que necesitas es realizar una importación de base de datos grande en un servidor local, debes consultar el siguiente artículo: Importar base de datos grande en Servidor Local

Para seguir los pasos de este artículo, el hosting donde tienes alojada la web debe que trabajar con la herramienta phpMyAdmin para administrar la base de datos.

Logo de phpMyAdmin

Michael Keck, the phpMyAdmin Project

Índice de contenidos

phpMyAdmin y la limitación de tamaño de archivo

La herramienta de importación de bases de datos de phpMyAdmin está limitada a archivos con un tamaño máximo. Este tamaño depende de la configuración del servidor que tengas contratado para tu web. Los servicios de hosting no nos permiten acceder a los archivos de configuración para modificar ese tamaño. Si intentamos subir una base de datos que exceda del tamaño límite, se producirá un error que nos impedirá importar la base de datos.

tamanio-maximo-base-de-datos

Vamos a conocer dos métodos que te permitirán importar una base de datos grande a un servidor con phpMyAdmin.

Método 1. Importar utilizando la carpeta tmp

La mayoría de los servidores que contratamos tienen incluida una carpeta tmp (archivos temporales), lo normal es encontrar esta carpeta colgando de la raíz de tus archivos web. En algunos hosting con varios proyectos alojados, por ejemplo un WP, un prestashop… podemos encontrar una carpeta tmp dentro de cada proyecto.

metodo-importar-base-de-datos-grande

Si no encuentras la carpeta /tmp dentro de tu servidor, debes consultar con la empresa de hosting donde tienes alojada tu web. No crees tú el directorio tmp, ya que la ubicación de la carpeta viene definida dentro del archivo de configuración php.ini y colocarla en mal lugar puede provocar errores.

Después de localizar la carpeta /tmp, debes subir el archivo de la base de datos comprimida dentro del directorio. Para ello puedes emplear algún programa FTP como Filezilla.

Por último en phpMyAdmin, en las opciones de importación selecciona «importar desde carpeta tmp» y selecciona el archivo de la base de datos comprimida.

Con algunos hosting este método puede no funcionar por varios motivos, uno que no tengas carpeta o directorio /tmp y otro motivo es que phpMyAdmin no tenga activada la opción de importar desde carpeta. Vamos a conocer otro método que te ayudará a importar una base de datos grande a un servidor con phpMyAdmin que no tiene directorio /tmp o no tiene opción de importar desde carpeta.

Método 2. Herramienta BigDump para importar bases de datos grandes

BigDump es un script PHP que puede ejecutarse en cualquier servidor web aunque tenga el tamaño archivo limitado, el tiempo de ejecución limitado y el modo seguro activado.

Paso 1. Descarga el script BigDump

Descarga el script en tu ordenador desde: https://www.ozerov.de/bigdump/ (es la web del autor del script Alexey Ozerov). El archivo que has descargado es un archivo comprimido. Necesitamos editar algunos parámetros del archivo para poder importar nuestra base de datos. Así que lo siguiente es descomprimir el archivo.

Paso 2. Editar el script BigDump

Después de descomprimir el archivo, abre el fichero bigdump.php que encontrarás dentro. Puedes abrirlo con cualquier editor de textos o un editor de código (NotePad++, BBedit…).

Primero vamos a editar los parámetros de la base de datos que queremos importar. Las líneas a editar son las siguientes:

// Database configuration

$db_server   = 'localhost';
$db_name     = '';
$db_username = '';
$db_password = ''; 

Debes añadir los siguientes datos: servidor de la base de datos, nombre de la base de datos, nombre de usuario y contraseña de la base de datos. Un ejemplo:

// Database configuration

$db_server   = 'rdbms.strato.de';
$db_name     = 'DBnl32145';
$db_username = 'Un132145';
$db_password = 'jhgtyklm';

*si estas trabajando con WP puedes encontrar estos datos en el archivo config.php

Ahora podemos editar algunos parámetros opcionales, como el nombre de archivo y las líneas de archivo. Debes localizar lo siguiente:

// OPTIONAL SETTINGS 

$filename           = '';     // Specify the dump filename to suppress the file selection dialog
$ajax               = true;   // AJAX mode: import will be done without refreshing the website
$linespersession    = 3000;   // Lines to be executed per one import session
$delaypersession    = 0;      // You can specify a sleep time in milliseconds after each session
                              // Works only if JavaScript is activated. Use to reduce server overrun

En $filename añadimos el nombre de nuestro archivo de base de datos comprimido, por ejemplo: $filename=’DBN132145.sql.gz’.

$linespersession; puedes aumentar este valor para asegurarte que en cada carga se ejecuta toda una consulta SQL, por ejemplo todas las filas de una tabla con más de 3000 filas. Puedes poner un valor mayor.

Estos datos son opcionales, si no quieres añadir el nombre del archivo de la base de datos a importar, durante la ejecución BigDump te da la posibilidad de seleccionar el archivo. Luego veremos las diferentes pantallas de inicio en los distintos supuestos; editando el nombre de archivo a importar y dejando vacío el parámetro nombre.

Paso 3. Subir BigDump al servidor

Con Filezilla u otro programa FTP vamos a subir bigdump.php a nuestro servidor. Lo mejor es subirlo dentro de una carpeta, puedes utilizar la carpeta /tmp u otra carpeta creada para este fin, por ejemplo creamos la carpeta /dump.

Dentro de la misma carpeta puedes subir el archivo de la base de datos con una de las siguientes extensiones: SQL, GZ o CSV. Este paso es opcional, si subes el archivo de base de datos dentro de la carpeta al ejecutar el script de bigdump es capaz de localizar el archivo y prepararlo para la importación. 

Es importante antes de subir el archivo de la base de datos, revisarlo y asegurarnos de que no contenga la sentencia CREATE DATABASE en el archivo, ya que puede provocar errores.

Paso 5. Ejecutar BigDump

Abre una ventana del navegador y escribe la url: URL DE TU SITIO/CARPETA/bigdump.php

URL de ejemplo: https//laprogramaciondehoy.com/tmp/bigdump.php

URL de ejemplo: https//laprogramaciondehoy.com/dump/bigdump.php

*recuerda, si has creado una carpeta con distinto nombre, sustituye tmp por el nombre de tu carpeta

En tu navegador se abrirá la siguiente pantalla. Ejemplo con la variable $filename=’DB3809986.sql.gz’.bigdump pantalla inicio

El siguiente paso es pulsar sobre «Start Import» para que se ejecute el script.

bigdump-start-import

Ya hemos mencionado en el Paso 2 que podíamos dejar los parámetros opcionales tipo nombre de archivo a importar VACÍOS. Si no pones el nombre de archivo pero subes la base de datos en la misma carpeta que bigdump.php el programa es capaz de encontrar el archivo si se llama igual que la base de datos y permite la importación directa. Además permite la opción de cargar cualquier archivo desde el ordenador.

bigdump-start-import-con-carga-de-archivos

La imagen anterior recoge el supuesto siguiente; en bigdump.php no había rellenado el parámetro $filename, en la carpeta donde he subido bigdump.php también he subido el archivo comprimido de la base de datos DB3809986.sql.gz.

Si dentro de la carpeta en la que has subido bigdump.php no hay ningún archivo de base de datos, la pantalla que encontrarás es la siguiente:

bigdump-carga-de-archivos

Una vez pulsemos sobre Iniciar la importación o subir el archivo seleccionado, debemos tener paciencia. El script puede tardar un tiempo en ejecutarse pero nos va informando en todo momento del proceso de importación.

Si la importación finaliza con éxito verás en la pantalla un mensaje en color verde:

Felicidades: Final del archivo alcanzo, asumiendo OK

También te avisa de que borres el archivo de volcado y el script de bigdump.

Paso 6. Borrar archivo BigDump

Es muy importante que al finalizar el proceso de importación borres los archivos que has subido a la carpeta. Con FTP abre la carpeta /tmp o /dump o la que hayas creado y borra todos los archivos: archivo de la base de datos, bigdump.php

Errores con BigDump

En la página web del autor encontrarás respuesta a errores y dudas sobre el uso de BigDump. También encontrarás emails para contacto y soporte. 

Espero que este artículo haya sido de ayuda. Si tienes cualquier duda puedes escribirme un comentario e intentaré solucionar tu problema. 

 

 

 

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *