Nueva pregunta

Pregunta:

Fecha: 24-08-2017 07:22:23 (En Español)

Aporte: Configuración para importar una base de datos con phpMyAdmin[Resuelta]

¡Hola, comunidad!

Hace poco me he topado con un pequeño problema. He intentado importar una base de datos con más de 120,000 registros (sin duda un SQL algo extenso en instrucciones), este fichero SQL tiene 20MB de tamaño.

Estoy seguro que muchos acá han tenido este problema o los tendrán a la hora de escribir una base de datos extensa en MySQL con PHPMyAdmin. Por tal razón es que he dedicido compartir mi solución.

En mi caso de utilizar el gestor de paquetes XAMPP, lo mostraré con las rutas que me ofrece, pero para los que tienen instalado los servicios Apache, PHP y MySQL + phpMyAdmin, no tengan miedo, son los mismos ficheros a modificar.

Normalmente el log que devuelve el phpMyAdmin es el siguiente:
Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php


Se modificarán dos ficheros: 1- php.ini, -2 config.default.php

Ruta de php.ini = \xampp\php\php.ini
Configuraciones:
    max_execution_time = 3000000 (Dependiendo de los requerimientos)
    post_max_size = 4096M
    upload_max_filesize = 4096M
    memory_limit = 128M

Ruta de config.default.php = \xampp\phpMyAdmin\libraries\config.default.php
Asignar un valor a la siguiente variable: $cfg['ExecTimeLimit']
$cfg['ExecTimeLimit'] = 30000;

Con esto tendría que poder subir nuevamente el script SQL para importar sin problemas con phpMyAdmin. Recuerden reiniciar Apache.

Ya alguien en este portal me comentó que el mejor vino no es necesariamente el más caro, sino el que se comparte.
¡Saludos a toda la comunidad!
Etiquetas: Base de Datos - La Comunidad - MySQL - PHP - phpMyAdmin Votos: 1 - Respuestas: 7 - Vistas: 25 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 24-08-2017 07:31:16 Cuando toca importar backups de mas de 50 GB hay qu hacer cosas como estas:

    https://stackoverflow.com/questions/13717277/how-can-i-import-a-large-14-gb-mysql-dump-file-into-a-new-mysql-database
    mysql -u root -p
    
    set global net_buffer_length=1000000; --Set network buffer length to a large byte number
    
    set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number
    
    SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour
    
    source file.sql --Import your sql dump file
    
    SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!
    


    http://derwiki.tumblr.com/post/24490758395/loading-half-a-billion-rows-into-mysql

    :)
      Votos: 3 - Link respuesta
     
  • Fecha: 24-08-2017 07:56:06 Hola, Jorge.

    Eso está genial. Gracias, seguro me servirá. =D
      Votos: 0 - Link respuesta
     
  • Fecha: 24-08-2017 09:29:51 Creo que hacerlo utilizando PHPMyAdmin no es lo correcto con esquemas grandes.
    En la solución que diste tuviste que modificar 1 servicio y la configuración de una aplicación. Significa que tu procedimiento tiene dependencias no necesarias.
    Puedes utilizar GUIs como Navicat o MySQL Workbench o definitivamente utilizar directamente la consola de MySQL (con todos los beneficios que trae ;)).
      Votos: 3 - Link respuesta
     
  • Fecha: 24-08-2017 09:49:29 Tambien seria bueno que cuando crees tu backup de base de datos utilices Bulk Insert Statements (la mayoria de clientes mysql tienen soporte para ello), con eso 120K registros se importan en cuestión de segundos:

    http://www.geeksengine.com/database/data-manipulation/bulk-insert.php
      Votos: 2 - Link respuesta
     
  • Fecha: 25-08-2017 10:19:59 Si me parece un poco arriesgado hacer este tipo de cambios al servidor, por mi parte administró una DB de mas de 97 millones de Registros, y en definitiva Navicat es la mejor solución para realizar estas importaciones, semanalmente la base se alimenta con 200 mil registros, es muy rápido seguro y sin riesgos de saturar el servidor en producción   Votos: 2 - Link respuesta
     
  • Fecha: 30-08-2017 01:32:16 Deberías cambiar el título de tu post ya que no se considera extensa una base de datos de 120.000 registros.
    Considero sería una base de datos pequeña.

    En mi opinión el título es bastante engañoso...
      Votos: 1 - Link respuesta
     
  • Fecha: 07-09-2017 02:50:12 Soy pichón (aprendíz).

    Ernesto, Jorge y Bryan, excelentes aportes, ahora tengo qué investigar e implementar. Gracias.

    Daniel, ya he hecho el cambio, gracias por la recomendación.

    ¡Saludos caballeros!
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com