Importare un file .sql in un database MySql non è una cosa complicata, ed il processo si conclude in pochi minuti, ma spesso il ‘come fare’ è abbastanza difficile da determinare.
Iniziamo innanzitutto a dire che un file .sql non è altro che un insieme di istruzioni sql che qualsiasi database interpreta di default. Spesso su internet troviamo utili consigli e procedure per svolgere questo compito, ma altrettanto spesso i vari post che troviamo su internet, ci fanno perdere un sacco di tempo ed alla fine l’importazione del file fallisce miseramente pur avendo seguito alla lettera il post. Quello che la maggior parte dei post ‘dimenticano di dirvi’ lo scoprirete qui. Ed in pochi minuti sarete in grado di importare file .sql di grandi dimensioni nel Vostro database. Io lo appena fatto (40 MB) cira 48.000 righe.
Ci sono diversi modi di importare un file .sql, c’ è addirittura uno script in PHP scaricabile da qui, ma quello sicuramente più efficace è utilizzare il ‘motore’ MySql.

Procediamo:

1) Aprire un prompt dei comandi (o shell in Linux) con i privillegi di amministratore.

2) (opzionale) Se si stà usando Windows impostare il set di caratteri Unicode. Linux usaUTF-8 per impostazione predefinita.

3) Connettersi a un’istanza di MySql utilizzando la riga di comando

se siete in localhost non è necessario indicare la porta

Dovreste visualizzare una risposta di benvenuto simile a quella dell’inizio di questo articolo:

Importare file di grandi dimensioni

4)Adesso che siamo dentro Mysql, impostiamo il valore del buffer.

5)Adesso quello che gli altri post NON dicono impostiamo tre regole fondamentali per evitare errori che in seguito Vi descrivo.

La prima regola dice a MySql di non utilizzare chiavi esterne
La seconda disabilita la verifica sulle chiavi univoche
La terza disabilita l’ autocommit perchè MySql esegue un file di log su disco per ogni insert e per un file di grandi dimensioni ci fà risparmiare un sacco di I/O.
6) Siamo in dirittura d’arrivo. Importiamo il nostro file .sql con questo comando

7) L’importazione dura poche decine di secondi. Abbiamo quasi terminato !! Ultima fase importante dobbiamo ripristinare le regole modificate al punto 5.

Fine il nostro database è stato aggiornato, nel mio caso l’ inserimento di 48.000 righe ha impiegato meno di 10 secondi.
Buona fortuna

Sergio

Sergio

Analista Programmatore: C++ - Net C# - JAVA - Python - Php - Objective C Xamarin cross plattform iOS, Android, Windows and Mac. Certificazioni [candidate ID SR2210816] - IBM Certified Business Process Analyst - IBM WebSphere Integration Developer V6.1 - IBM Certified SOA Solution Designer [2007] - IBM Lotus Notes & Domino Technical Sales Professional v2 - IBM Lotus Sametime Unified Telephony Entry Technical Sales -IBM Certified Deployment Professional - Tivoli Compliance Insight Manager V8.5 -IBM Optim Implementation for Distributed Systems (2009) Professional Test v1
Sergio