L’altro giorno un mio contatto aveva un problema non indifferente. Mettere sul server un database MySQL molto grande: 60MB circa. Nella procedura normale questa semplice operazione può essere fatta tramite browser. Tuttavia si possono riscrontrare dei problemi di timeout o blocchi imposti sul server che, a scopo cautelativo, mettono restrizioni sulla dimensione massima di file che possono essere inviati tramite porta 80. Se non diversamente specificato infatti sia il PHP che Apache settano a 8MB il limite massimo. Capite subito che il mio amico si trovava con una bella gatta da pelare.
Fortunatamente per lui, aveva sia la conoscenza giusta e la possibilità di accedere al server tramite riga di comando e fare tutto da li… ma non tutti hanno la stesse fortune. Nel mentre lui risolveva, io…. spinto da spirito crocerossino, mi prodigavo a trovare una soluzione semplice.
L’ho trovata e si chiama BigDump. Consiste un semplice file php, che una volta configurato e uppato sul server insieme al DB ciccione vi garantisce un importazione a regola d’arte.
Necessario:
Utilizzo:
Scaricate il file, aprite e configuratelo inserendo i parametri corretti del vostro server:
Poco più sotto alla voce:
Se non avete particolari esigenze lasciate perdere il resto.
NB: Prima di fare questo dovete sapere se il db_ciccione che avete va o meno a sostituire un db esistente. Se così fosse dovete accertarvi che nel nuvo db che andrà a sostituire il vecchio ci sia la sintassi “DROP TABLE” altrimenti prima di far partire lo script dovrete eliminare voi a mano tutte le tabelle presenti nel db per non rischiare di far casotto!
Andiamo ad uppare i file sul server collegandoci al nostro sito con un qualsiasi programma FTP. Mettete sia il file bigdump.php appositamente configurato che il DB.
Aprite un browser qualsiasi e andate digitate http://nomedelvostrosito/bigdump.php
Aspettate e aspettate e non chiudete mai la finsetra in cui sta lavorando BigDump.
Se non dovesse funzionare perchè vi srtestituisce un errore o va in timeout modificate bigdump e configurare il parametro $linespersession settato di default a 3000 con un valore più alto. Riuppate e rieffettuate l’operazione.
<a href="" title=""></a><blockquote></blockquote><code></code><em></em><strong></strong>
Non mi è ancora mai capitata un’emergenza simile ma la trovo utile come soluzione, e soprattutto semplice.. Peccato che i problemi più ricorrenti siano: impossibilità di effettuare backup dei db, perché gestiti da sistemi tipo (Virtuozzo della swsoft) che ti permettono solo di creare o eliminare db, ma non ti danno il diretto accesso per modifiche manuali, backup, ripristino ecc.. Per non dire che se si vuole avere il backup o il ripristino di un del db, lo si può ottenere solo chiedendolo al fornitore del servizio host. Uno script che aiutasse in questo ambito non sarebbe affatto male, come lo aveva yabbse forum, che ti consentiva di farti backup o ripristinarli direttamente dal pannello admin del forum stesso..
16 giugno, 2007 12:44
Ciao. Ti devo davvero ringraziare perchè mi hai salvato da morte certa! Quindi grazie mille davvero!
Permettimi però di consigliarti di aggiungere un’altra info:
Tu hai scritto:
“Se non dovesse funzionare perchè vi rtestituisce un errore o va in timeout modificate bigdump e configurare il parametro $linespersession settato di default a 3000 con un valore più alto. Riuppate e rieffettuate l’operazione.”
Dovresti aggiungere (perchè è capitato a me):
Se vi da errore di eccesso di query massime (300) bisogna modificare un’altro parametro e cioè:
define (‘MAX_QUERY_LINES’,300);
cambiare da 300 a un numero più grande. Io avevo messo 1000 ma me la rifatto (infatti nell’errore mi dava quary massime 1000) allora ho messo 10000 (scritto così senza il punto) ed ha funzionato!
Grazie mille ancora! :D
19 febbraio, 2010 13:59