MySQL e database di grandi dimensioni – Soluzione

venerdì, 15 giugno 2007 di David Terni
commenti stampa

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:

  1. Avere un server che supporti il PHP 4.1.0 o successivi
  2. Programma FTP per mettere sul server sia il file php che il database
  3. Editor di testo per effettuare le modifiche
  4. Gli estremi di connessione al vostro database
  5. Sul server deve esistere, anche se vuoto, un database
  6. Un browser con i JavaScript attivi

Utilizzo:
Scaricate il file, aprite e configuratelo inserendo i parametri corretti del vostro server:

$db_server = ‘localhost’;
$db_name = ‘db1‘; // il nome del vostro database che nel mio caso si chiama db1
$db_username = ‘antani‘; // il nome dell’utente col quale avete accesso al database, nel mio caso è antani
$db_password = ‘amici_miei’; // la password per accedere al DB, nel mio caso è amici_miei

Poco più sotto alla voce:

$filename = ‘db_ciccione’; // inserire il nome del database di dimensioni troppo grandi per le condizioni di uso normale
$db_connection_charset = ‘utf-8′; // generalmente io uso utf-8

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.

ATTENZIONE! L'articolo che hai letto e' stato scritto piu' di quattro mesi fa. Le informazioni presenti potrebbero dunque non essere aggiornate o non piu' valide!

Tags: , , ,
venerdì, giugno 15 2007 di David Terni
commenti stampa share

Vuoi ricevere gratuitamente i nuovi articoli sull'informatica di David Terni nella tua casella E-mail o tramite Rss?

E-mail Rss

Altri Articoli Che Ti Potrebbero Interessare:

Ci sono 2 Commenti per questo articolo.

  1. 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..

    utente Marco

    16 giugno, 2007 12:44

  2. 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

    utente Yannick

    19 febbraio, 2010 13:59

Scrivi un commento

I commenti sono senza moderazione, tuttavia...
  • I messaggi contenenti frasi offensive, fuori tema, di propaganda, futili o link di spam saranno modificati o non pubblicati.
  • Accetto le critiche, ma quelle personali mandatele via email

Puoi usare i seguenti tag HTML:
  • <a href="" title=""></a>
  • <blockquote></blockquote>
  • <code></code>
  • <em></em>
  • <strong></strong>

N.B. I campi in rosso sono obbligatori