L'auto-complétion de la base de données MySQL en ligne de commande client
Linux, et de nombreux autres systèmes, lors de la navigation dans le terminal, vous pouvez appuyer sur Tab pour la saisie semi-automatique d'un répertoire ou un nom de fichier.
Je me demandais si il n'y a rien de tel dans la base de données MySQL terminal. Par exemple, si je veux obtenir la description de someTableWithRidiculousLongName
je pourrais type describe someTableW
puis Tab, et il serait auto-remplir le reste.
N'a rien de semblable existe dans la base de données MySQL terminal?
- Essayez mycli, github.com/dbcli/mycli
Vous devez vous connecter pour publier un commentaire.
De modifier ou de créer un fichier appelé
.my.cnf
dans votre répertoire personnel, contenant:--disable-auto-rehash
drapeau. Mais maintenant que vous avez activé par défaut.Pour activer la saisie semi-automatique dans l'invite MySQL type:
Après cela, vous pouvez taper:
Pour obtenir:
mysql> rehash
- Comme une alternative à "\#", on peut aussi taper "resucée" de commande de mysql comme suit. La pensée de partage "resucée" pourrait être plus facile à retenir pour certaines personnes comme moi:mysql> rehash
Après que la saisie semi-automatique va commencer à travailler!démarrer la console MySQL avec l'option supplémentaire
--auto-rehash
, c'est à direJe sais que c'est une vieille question, mais je l'ai trouvé très utile MySql client cli avec fonctions avancées d'auto-complétion:
mycli. Il est beaucoup plus intelligent que builtin auto-rehash fonctionnalité.
Quelques notes à propos de l'auto-rehash:
Lorsque vous activez l'auto-complétion en éditant le fichier de configuration de mysql..
Vous pouvez le faire pour tous les utilisateurs ou seulement pour un seul utilisateur:
/etc/my.cnf
: Tous Les Utilisateurs~/.my.cnf
: Réelle de l'utilisateurVous pouvez également désactiver la saisie semi-automatique d'ajouter:
Extrait de: http://www.sysadmit.com/2016/08/linux-mysql-autocompletar.html
Sur OS X 10.11.6 j'ai créé-auto-rehash comme décrit ci-dessus, mais il n'a pas de travail. (C'est OS X de sorte que mysql est compilé avec le BSD libedit de la bibliothèque.)
Puis je me suis souvenu que j'avais mis en vi-clés liaisons pour mysql client en créant ~/.editrc, contenant une seule ligne: bind-v. Cela fonctionne très bien pour me donner vi-comme la navigation dans le client mysql, mais il s'est cassé la colonne nom d'achèvement (j'ai pu le vérifier en enlevant .editrc).
Donc j'ai cherché un peu et trouvé que ~/.editrc doit avoir au moins les lignes suivantes:
Avec cette ligne supplémentaire, nom d'achèvement fonctionne correctement dans mysql ET vi-tels que la navigation fonctionne aussi. (Il y en a d'autres .editrc les paramètres de ce qui a grandement améliorer mysql client de navigation, mais ce n'est pas l'endroit pour commencer ce fil de discussion.)
Vous pouvez également l'auto-complète basée sur l'historique des commandes. Commencez à taper, puis invoquer les clés qui sont liés à
ed-search-prev-history
eted-search-next-history
. Cela s'applique si mysql est livré avec libedit de soutien. Les raccourcis clavier sont Ctrl-P et Ctrl-N, mais cela peut être personnalisée .editrc. Mon exemple pour la touche Ctrl et Ctrl-bas:Précédemment, mysql a été basée sur readline, puis
history-search-backward
ethistory-search-forward
sont les commandes correctes. De Configuration, puis a été par le biais de .inputrc. Même exemple que ci-dessus:Donc, disons que vous avez commencé à taper
sel
et invoquer Ctrl-Up,select * from some_long_table_name
serait arriver si c'est une commande que j'ai utilisé précédemment.