Aumentare il limite di import in mysql / php

Chiunque si sia trovato a gestire grandi portali web o applicazioni locali di grosse dimensioni avrà avuto a che fare con file .sql di dimensioni maggiori a 2 mega . Come ben sappiamo questo è il peso massimo impostato di default su phpmyadmin attraverso il file di configurazione php.ini che ci applica questa restrizione come si può vedere dalla foto :

Supponiamo qundi di avere un file da 180 mb , andremo quindi a modificare queste impostazioni in primis attraverso il file php.ini dove in molti gestori di hosting è vietato mentre in altri è consetito tramite un apposito pannello , faremo noi un esempio in locale tramite il pacchetto bitnami :
ci muoveremo quindi in : ..\php\php.ini

e sostiutiamo le seguenti righa che ha come valore 2 nel numero desiderato :

[php]; Maximum allowed size for uploaded files.
upload_max_filesize = 2M[/php]

Fatto ciò andremo in ..\apps\phpmyadmin\htdocs\import.php
e cambiamo :

[php]// We can not read all at once, otherwise we can run out of memory</pre>
$memory_limit = trim(@ini_get(‘memory_limit’));
// 2 MB as default
if (empty($memory_limit)) {
$memory_limit = 2 * 1024 * 1024;
}
// In case no memory limit we work on 10MB chunks
if ($memory_limit = -1) {
$memory_limit = 10 * 1024 * 1024;[/php]

in:

[php]// We can not read all at once, otherwise we can run out of memory</pre>
$memory_limit = trim(@ini_get(‘memory_limit’));
// 2 MB as default
if (empty($memory_limit)) {
$memory_limit = 200 * 1024 * 1024;
}
// In case no memory limit we work on 10MB chunks
if ($memory_limit = -1) {
$memory_limit = 100 * 1024 * 1024;[/php]

Abbiamo quindi incrementato di 100 volte il limite , a questo punto bisogna riavviare il servizio per apportare definitivamente le modifiche.
Effettuiamo un test per verificare il corretto funzionamento;
Creiamo un nuovo file php con all’interno :

[php]<?php phpinfo() ; ?>[/php]

, lo chiamiamo info.php e lo inseriamo nella root del nostro server , lo apriamo e se abbiamo fatto tutto bene avremo una lista di info tra le quali :

Apriamo phpmyadmin e vedremo cambiata la dimensione: ( si consiglia di scegliere un di time out alto )

Alternativa : Bigdump

Se quanto detto vi risulta complesso o impossibile a causa di problemi di amministrazione possiamo utilizzare un semplice script in php che potete scaricare da QUI
Vediamo come configurarlo :
Al suo interno ci interesserano inizialmente le prime righe cioè la configurazione del database in cui effettueremo l’import :

[php] // Database configuration

$db_server = ‘localhost ( o ip/host server )’;
$db_name = ‘nome database’;
$db_username = ‘nome user’;
$db_password = ‘password’; [/php]

Salviamo e carichiamolo nella root . Apriamo la pagina e avremo la possibilità di effettuare il dump direttametne dal nostro server con i file all’interno e cliccando come in immagine :

Oppure fare un upload dal proprio computer :

Il tutto verrà effettuato molto velocemente senza il rischio di time out :


Nella speranza che il file non sia danneggiato o corrotto .


3 commenti

Giusy · 13 Febbraio 2010 alle 15:20

Perfetto ! ho utilizzato l’alternativa che è molto piu semplice e direi molto veloce rispetto alle altre soluzioni.

Giacomo Odoardi · 16 Marzo 2011 alle 14:06

Salve questo per l’import ma per l’export di DB di grosse dimensioni come si deve fare?Utilizzo Xampp 1.73 con PhpmyAdmin che ha limite max di import a 128 MB.
Vi prego aiutatemi mi serve un Vs. parere.

caricare il file dump.sql · 13 Febbraio 2011 alle 22:57

[…] supera le consentite devi editare il php.ini cosi come ho scritto in questa vecchia guida: Aumentare il limite di import in mysql / php | Risorsa informatica – Blognews Guide e tutorial ->Come fare joomla & WordPress Foto facebook – Profilo su Twitter […]

I commenti sono chiusi.