Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de Mysql dans la ligne de commande sous osx - commande introuvable ?

Il y a donc peu d'endroits où le terminal recherche des commandes. Ces lieux sont stockés dans votre $PATH variable. Considérez-le comme une variable globale où le terminal itère pour rechercher n'importe quelle commande. Ce sont généralement des binaires qui regardent comment le dossier /bin est généralement référencé.

/bin dossier contient de nombreux fichiers exécutables. Il s'avère que ce sont des commandes. Ces différents emplacements de dossier sont stockés dans une variable globale, c'est-à-dire $PATH séparés par :

Désormais, les programmes lors de l'installation prennent généralement en charge la mise à jour de PATH &dire à votre terminal que je peux être toutes les commandes dans mon bin dossier.

Il s'avère que MySql ne le fait pas lors de l'installation, nous devons donc le faire manuellement.

Nous le faisons en suivant la commande,

export PATH=$PATH:/usr/local/mysql/bin

Si vous le décomposez, export est explicite. Considérez cela comme une mission. Donc export une variable PATH avec l'ancienne valeur $PATH concat avec le nouveau bin c'est-à-dire /usr/local/mysql/bin

De cette façon, après avoir exécuté toutes les commandes dans /usr/local/mysql/bin sont à notre disposition.

Il y a un petit hic ici. Considérez une fenêtre de terminal comme une instance de programme et peut-être quelque chose comme $PATH est une variable de classe (peut-être). Notez qu'il s'agit d'une pure hypothèse. Ainsi, à la fermeture, nous perdons la nouvelle affectation. Et si nous rouvrons le terminal, nous n'aurons plus accès à notre commande car la dernière fois que nous avons exporté, elle était stockée dans la mémoire primaire qui est volatile.

Maintenant, nous devons exporter nos fichiers binaires mysql à chaque fois que nous utilisons le terminal. Nous devons donc persister sur notre chemin.

Vous savez peut-être que notre terminal utilise quelque chose appelé dotfiles pour charger la configuration à l'initialisation du terminal. J'aime penser que c'est comme des ensembles de choses transmises au constructeur chaque fois qu'une nouvelle instance de terminal est créée (encore une hypothèse mais proche de ce qu'elle pourrait faire). Alors oui, vous comprenez maintenant ce que nous allons faire.

.bash_profile est l'un des principaux dotfile connus .

Donc dans la commande suivante,

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile

Ce que nous faisons, c'est enregistrer le résultat de echo c'est-à-dire la chaîne de sortie vers ~/.bash_profile

Alors maintenant, comme nous l'avons noté ci-dessus, chaque fois que nous ouvrons un terminal ou une instance de terminal, nos dotfiles sont chargés. Donc .bash_profile est chargé respectivement et export que nous avons ajouté ci-dessus est exécuté et donc notre $PATH global est mis à jour et nous obtenons toutes les commandes dans /usr/local/mysql/bin .

PS

si vous n'exécutez pas directement la première commande d'exportation, mais que vous exécutez simplement la seconde afin de la conserver ? Que pour l'instance en cours d'exécution du terminal, vous devez,

source ~/.bash_profile

Cela indique à notre terminal de recharger ce fichier particulier.