web-dev-qa-db-fra.com

Utilisation de Mysql dans la ligne de commande dans osx - commande non trouvée?

J'essaie de faire fonctionner MySQL sur mon Mac OSX 10.9.5. J'ai installé le dernier serveur de communauté version14.145.6.21. Je suis allé aux préférences système et ai démarré le serveur mysql, puis lancé terminal et tapé ceci:

/usr/local/mysql/bin/mysql --version qui retourne la version, mais quand je tape n'importe quel type de commande mysql, je reçois command not found. J'ai aussi essayé Sudo mysql_secure_installation, mysql -u root --password=password.

J'ai installé un hébergement Web avec mysql, etc., mais je veux d'abord pouvoir le maîtriser en ligne de commande.

40
user1574598

Donc, il y a peu d'endroits où le terminal cherche des commandes. Ces lieux sont stockés dans votre variable $PATH. Considérez-le comme une variable globale dans laquelle le terminal effectue une itération pour rechercher une commande. Il s’agit généralement de fichiers binaires de la manière dont le dossier/bin est généralement référencé. 

Le dossier /bin 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, à savoir $PATH, séparée par :.

Maintenant, ce sont généralement les programmes lors de l’installation qui se chargent de mettre à jour PATH & en indiquant à votre terminal que je peux avoir toutes les commandes dans mon dossier bin

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 s'explique de lui-même. Pensez-y comme une mission. Donc, export une variable PATH avec la valeur old $PATH concat avec le nouveau bin i.e. /usr/local/mysql/bin

Ainsi, après l’avoir exécuté, toutes les commandes contenues dans /usr/local/mysql/bin sont disponibles. 

Il y a une petite prise ici. Pensez à une fenêtre de terminal comme une instance de programme et peut-être que quelque chose comme $PATH est une variable de classe (peut-être). Notez que ceci est une hypothèse pure. Donc, à la fermeture, nous perdons la nouvelle affectation. Et si nous rouvrons le terminal, nous n'aurons plus accès à notre commande car, lors de l’exportation, elle était stockée dans la mémoire principale, qui est volatile. 

Nous devons maintenant exporter nos fichiers binaires mysql chaque fois que nous utilisons un terminal. Nous devons donc persister dans notre chemin. 

Vous savez peut-être que notre terminal utilise quelque chose appelé dotfiles pour charger la configuration lors de l’initialisation du terminal. J'aime penser que c'est un ensemble d'éléments transmis au constructeur chaque fois qu'une nouvelle instance de terminal est créée (Encore une hypothèse, mais proche de ce qu'elle pourrait être en train de faire). Alors oui, vous comprenez maintenant ce que nous allons faire. 

.bash_profile est l'un des principaux connus dotfile

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 dans ~/.bash_profile

Donc 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 ainsi un $PATH global est mis à jour et nous obtenons toutes les commandes dans /usr/local/mysql/bin

P.s. 

si vous n'exécutez pas directement la première commande exportée mais simplement la deuxième afin de la conserver? Que pour l'instance de terminal en cours d'exécution, vous devez,

source ~/.bash_profile

Cela indique à notre terminal de recharger ce fichier particulier.

118
kishanio

Cela signifie que/usr/local/mysql/bin/mysql n'est pas dans la variable PATH. 

Soit exécutez/usr/local/mysql/bin/mysql pour obtenir votre shell mysql,

ou tapez ceci dans votre terminal:

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

pour l'ajouter à votre variable PATH afin que vous puissiez simplement exécuter mysql sans spécifier le chemin

20
Justin Kiang

pour moi les commandes suivantes ont fonctionné:

$ brew install mysql

$ brew services start mysql
4

modifiez votre profil bash comme suit <> $ vim ~/.bash_profile export PATH =/usr/local/mysql/bin: $ PATH Une fois qu'il est enregistré, vous pouvez taper mysql pour amener mysql Prompt votre terminal.

0
Pravin