#SQL progress import #https://www.journalduhacker.net/s/knmp7w/import_sql_avec_barre_de_progression Import SQL avec barre de progression Vous avez un dump sql de 15 Go à remonter sur votre base de données, vous le lancez et pendant de longues minutes vous contemplez quelque chose comme ceci : $ zcat data-export.gz | mysql -u measuser -p -h db_host -P 3306 mydatabase Enter password: Est-ce que cela fonctionne ? Combien de temps avant la fin ? Est-ce que le terminal à freeze ? Pipe View pv est un outil qui permet d’avoir en temps réel l’état d’avancement d’une tache ou d’un flux de données (https://man7.org/linux/man-pages/man1/pv.1.html). Pour l’installer : sudo apt install pv Utilisation La commande devient alors : $ zcat data-export.gz | pv --progress --size $(zcat data-export.gz | wc -c) --name ' Importing.. ' \ | mysql -u measuser -p -h db_host -P 3306 mydatabase Enter password: Importing.. [=========> ] 15% Et voilà ! Une barre de progression qui permet de savoir où en est l’import. Attention : La commande $(zcat data-export.gz | wc -c) qui permet d’avoir le taille en byte du fichier décompressé est longue. Elle lit tout le fichier. Cela peut être intéressant de la sortir pour ne l’exécuter qu’une seule fois. Le truc est tiré de stackoverflow. Edit 2021-12-20 Dans un commentaire hg propose cette syntaxe qui laisse pv gérer la taille du dump. À tester : pv -pret --name ' Importing.. ' data-export.gz | zcat \ | mysql -u measuser -p -h db_host -P 3306 mydatabase ------------------------------------------------------ # Choix 1: zcat data-export.gz | pv --progress --size $(zcat data-export.gz | wc -c) --name ' Importing.. ' | mysql -u measuser -p -h db_host -P 3306 mydatabase # Choix 2: pv -pret --name ' Importing.. ' data-export.gz | zcat | mysql -u measuser -p -h db_host -P 3306 mydatabase