Mysql e comandi bash – come dividere un file sql per permettere un import del data base

Mysql E Comandi Bash – Come Dividere Un File Sql Per Permettere Un Import Del Data Base

Spezzettare un file .sql enorme in più parti può essere una manna dal cielo per la gestione e l’importazione.
Soprattutto se il problema è il file dump mysql enorme che non è possibile importare tramite interfaccia grafica del DBMS phpmyadmin.
Ti propongo un comando bash piuttosto semplice (e flessibile) che divide il file in N parti di dimensione simile:

🧩 Opzione 1: Split in N parti (es. 10 o 20)

bash

split -n l/10 -d --additional-suffix=.sql file_origine.sql parte_

Spiegazione:

  • -n l/10 → divide il file in 10 parti uguali per numero di righe.
  • -d → aggiunge i numeri (00, 01, 02…) invece di lettere (aa, ab, ac…).
  • –additional-suffix=.sql → aggiunge .sql ai file risultanti.
  • parte_ → prefisso dei file di output (parte_00.sql, parte_01.sql, ecc).

📌 Cambia 10 con 20 o quello che preferisci.

🛠️ Opzione 2: Split per numero di righe (es. ogni 1000 righe)

Se preferisci tagliarlo in base a un numero fisso di righe:

bash

split -l 1000 -d --additional-suffix=.sql file_origine.sql parte_

⚠️ Attenzione se il file SQL ha transazioni o comandi multilinea
Il metodo sopra è “cieco”: taglia a prescindere da contenuto o sintassi. Se i tuoi file SQL hanno transazioni (BEGIN…COMMIT) o query multi-riga, potresti rischiare di troncare comandi a metà.

🧩 Opzione 3: Script in Bash con una divisione più intelligente delle query

Qui di seguito propongo anche la versione “intelligente” in Bash, che taglia il file SQL in blocchi completi, cercando di non spaccare a metà i comandi tipo INSERT, CREATE, ALTER, DROP, ecc.

L’idea è: leggiamo riga per riga e scriviamo su un file finché raggiungiamo un certo numero di istruzioni SQL complete, mantenendo la coerenza sintattica.

Ecco uno script Bash che lo fa:

🧠 Script Bash “smart splitter” per file SQL
bash

#!/bin/bash

input_file="file_origine.sql"
output_prefix="parte_"
max_statements_per_file=100  # puoi cambiarlo come vuoi

statement_count=0
file_index=0
output_file="${output_prefix}$(printf "%02d" $file_index).sql"
buffer=""

mkdir -p sql_parts  # salva tutto in una cartella dedicata

while IFS= read -r line || [[ -n "$line" ]]; do
    buffer+="$line"$'\n'

    # Se troviamo un punto e virgola a fine riga, consideriamo la statement "completa"
    if [[ "$line" =~ ;[[:space:]]*$ ]]; then
        ((statement_count++))
    fi

    # Quando raggiungiamo il massimo, scriviamo su file
    if (( statement_count >= max_statements_per_file )); then
        echo -n "$buffer" > "sql_parts/${output_file}"
        ((file_index++))
        output_file="${output_prefix}$(printf "%02d" $file_index).sql"
        buffer=""
        statement_count=0
    fi
done < "$input_file"

# Scriviamo l’eventuale contenuto rimanente
if [[ -n "$buffer" ]]; then
    echo -n "$buffer" > "sql_parts/${output_file}"
fi

echo "✅ Fatto! File spezzettati nella cartella 'sql_parts/'"

✅ Vantaggi: Non tronca comandi a metà.

Facile da configurare: puoi cambiare max_statements_per_file per spezzarlo in più o meno parti.

Pulito: ti crea una cartella sql_parts/ con i file parte_00.sql, parte_01.sql, ecc.

🧪 Per eseguirlo:
Salvalo come split_sql.sh, rendilo eseguibile e lancialo:

bash

chmod +x split_sql.sh
./split_sql.sh

Buon divertimento con questo nuovo suggerimento settimanale.

Richiedi informazioni

Raccontami il tuo progetto, tracking, accessibilità, campagne adv da sistemare o semplicemente un sito che non vuol saperne di funzionare. Insieme possiamo migliorarlo.

    Accetto la Privacy Policy
    Autorizzo al trattamento dei miei dati personali, per ricevere le informazioni richieste attraverso questo modulo di contatto. I dati da te inseriti attraverso questo modulo verranno utilizzati solo per essere da me ricontattato.

    Recensioni

    Pubblicato su Google Google
    Flavio Corò profile picture
    Flavio Corò
    22/09/2023
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Ho avuto il piacere di contattare la Sig.ra Sara tramite suggerimento da parte di un mio cliente per riisolvere una pratica burocratica/lavorativa e devo dire che la VELOCITÀ, PROFESSIONALITÀ, e COMPETENZA fanno parte del Suo bagaglio lavorativo,qualita al giorno d'oggi per niente scontate.Pienamente soddisfatto.
    Pubblicato su Google Google
    Sonico Beauty profile picture
    Sonico Beauty
    17/01/2023
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Sara ci ha aiutato a risolvere piu' problemi in pochi minuti e con molta professionalità. Massima disponibilità e grande conoscenza nel mondo web. Assolutamente consigliata. Grazie mille
    Pubblicato su Google Google
    Studio Legale Avvocato Armando Baffioni Venturi profile picture
    Studio Legale Avvocato Armando Baffioni Venturi
    07/11/2022
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Contattata tramite il suo sito web si è rivelata una persona affabile e preparata, pronta nel recepire le mie necessità e nel darmi le indicazioni corrette da seguire. Assolutamente da consigliare anche per assistenze e consulenze da remoto.
    Pubblicato su Google Google
    Hermann Gils profile picture
    Hermann Gils
    28/10/2022
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Molto esperta, preparata e competente!
    Pubblicato su Google Google
    Antonio Cimadomo profile picture
    Antonio Cimadomo
    07/08/2022
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Definire La Sig.a Sara Gasparini persona capace, Umile, molto intelligente e disponibile è il minimo che si possa fare. E' stata una grande emozione per me averla 'scovata'. Persone come Sara alzano, e di tanto, il livello sociale/culturale. Ringrazio ancora Sara per esserci.... Antonio p.s. Peccato ci siano solo 5 stelle :-(
    Pubblicato su Google Google
    Max R_DJ profile picture
    Max R_DJ
    16/06/2021
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Molto professionale e preparata, ha risolto subito un mio problema inerente alle recensioni Google sul mio sito web. Complimenti Sara!
    Pubblicato su Google Google
    Fabrizio Aureli profile picture
    Fabrizio Aureli
    18/03/2021
    Google star 1Google star 2Google star 3Google star 4Google star 5Trustindex verifica che la fonte originale della recensione sia Google.
    Ottima collaboratrice

    Scrivimi una recensione

    Questo QR Code ti permette di lasciarmi una recensione in maniera facile e veloce.

    Altrimenti usa il bottone qui sotto.

    Lascia una recensione su Google