J'importe souvent des bases de données MySQL, et cela peut prendre un certain temps. Il n'y a aucun indicateur de progrès. Peut-on être montré, en quelque sorte? Soit des enregistrements importés, des Mo importés ou des tables importées ... tout vaut mieux que d'attendre. Quelqu'un a une idée?
J'utilise cette commande:
mysql -uuser -p -hhost database < largefile.sql
Les fichiers font entre 40 et 300 Mo et l'hôte se trouve sur le réseau local.
pv
,cpipe
) fonctionnent-ils dans ce scénario?pv
c'est exactement ce que l'interrogateur recherche. Je viens de l'installer sur CentOS via rpmforge. Si le paramètre de taille est donné, il affichera même un ETA.pv
a fait l'affaire en effet! Si quelqu'un peut en faire une réponse, je peux l'accepter!Réponses:
Il y a un bel outil appelé
pv
alors par exemple vous pouvez l'utiliser comme ceci
ps: consultez ce blog http://blog.larsstrand.org/2011/12/tip-pipe-viewer.html
MISE À JOUR: il semble que le lien ci-dessus soit rompu mais j'ai trouvé le même article ici http://blog.larsstrand.no/2011/12/tip-pipe-viewer.html
MISE À JOUR 2: encore meilleure solution avec la barre de progression FULL. Pour ce faire, vous devez utiliser 2
pv
options de build . La première consiste--progress
à indiquer la barre de progression et la seconde--size
à indiquerpv
la taille du fichier global...le problème vient de
.gz
la taille du fichier d'origine. Vous devez en quelque sorte obtenir des informations sur la taille du fichier d'origine sans le décompresser, sinon vous perdrez un temps précieux pour décompresser ce fichier deux fois (la première foispv
et la deuxième fois pourzcat
). Mais heureusement, vous avez unegzip -l
option qui contient des informations non compressées sur notre fichier gziped. Malheureusement, vous l'avez sous forme de tableau, vous devez donc l'extraire avant de pouvoir l'utiliser. Tous ensemble peuvent être vus ci-dessous:Uff .. donc la dernière chose que vous devez faire est simplement de combiner tous ensemble.
Pour le rendre encore plus agréable, vous pouvez ajouter des programmes NAME comme celui-ci
Résultat final:
MISE À JOUR 3: Pour une utilisation rapide, créez une fonction personnalisée.
usage:
Si vous ne savez pas où le mettre, lisez cette réponse: /unix//a/106606/20056
Vous pouvez ajouter des fonctions parmi les alias. Vous pouvez donc utiliser par exemple un
~/.bash_aliases
fichier.la source
pv --progress --name 'DB Import in progress' -tea /path/to/our/database.sql.gz | zcat | mysql -h db_host -u db_user -pdb_password db_name
Pourquoi si compliqué?
Cela fonctionne bien:
la source
J'importe toujours des bases de données à partir du shell MySql. Il ne fournit pas d'indicateur de progression, mais il fait défiler (rapidement) les actions qu'il effectue, donc je sais que cela fonctionne.
la source