57 votes

se connecter à mysql depuis cygwin

Je parviens à me connecter à MySQL à partir d'une invite DOS, mais lorsque j'essaie de me connecter à partir de cygwin, tout se bloque.

 $/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p
 

Qu'est-ce qui ne va pas?

72voto

Svend Hansen Points 1039

Je viens de tomber sur ce, et quand j'ai lu quelqu'un mentionne une commande windows/DOS que vous exécutez dans cygwin, j'ai fait un which mysql et qui m'a donné:

$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql

Alors, j'ai couru le cygwin Setup.exe recherché "mysql" et installé la dernière "mysql-client". Maintenant, which mysql ressemble:

$ which mysql
/usr/bin/mysql

Et la commande MySQL fonctionne dans cygwin :)

Si c'est une vieille question, il serait agréable d'avoir la réponse exacte ici, car les gens (comme moi) pourrait encore tomber sur elle.

Si vos tentatives pour exécuter le client MySQL à partir de Cygwin renvoie l'erreur suivante:

$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2)

Ensuite, vous pouvez résoudre le problème en ajoutant de l'explicite -h 127.0.0.1 options de la ligne de commande, comme dans:

$ mysql -u root -p -h 127.0.0.1

19voto

Ken Gentle Points 10162

En supposant que vous avez un natif de Windows version de MySQL, il y a une émulation de terminal incompatibilité entre DOS (invite de commande windows et bash. L'invite pour l' mysql ne s'affiche pas.

Pour confirmer cela, tapez une commande et de retour, il sera probablement de travail, mais de la rapidité et de l'echo de la commande (ce que vous tapez) est de se perdre.

Il y a peut être une solution de contournement dans l' CYGWIN sytem propriétés ou en bash, mais je n'ai jamais pris le temps de travail de celui-ci.

7voto

Donal Lafferty Points 1390

D'autres réponses manque la suite de la clé de détail:

Cygwin est dotée de deux coquilles:

  1. Par défaut: c:\cygwin\bin\mintty.exe
  2. Base: c:\cygwin\Cygwin.bat (qui lance c:\cygwin\bin\bash.exe)

Win32 MySQL peut écrire correctement le n ° 2, mais pas #1, parce que Win32 MySQL ne peut sonde stdin correctement (merci @PeterNore)

Vous voulez savoir si vous êtes en utilisant Win32 MySQL? Utiliser which, par exemple

$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql

Bonus: Cygwin guide pour surmonter les problèmes de chemins (merci @Dustin)

5voto

Dustin Points 4694

5voto

Clive Stellings Points 11

Exécuter bash à partir du cmd.exe fichier exécutable et puis mysql va travailler à l'intérieur de bash.

  1. Créer un raccourci pour cmd.exe sur votre bureau.
  2. Ouvrir les propriétés du raccourci et de changer le répertoire de démarrage de la cygwin répertoire bin (généralement C:\cygwin\bin).
  3. Ajouter "/c bash.exe" à la fin de la commande dans le paramètre cible.

Cela va lancer bash sous windows cmd.exe l'environnement et lorsque vous essayez d'exécuter mysql il va exécuter ce que vous pouvez attendre. Ce travail est sous windows 7, mais n'a pas été testé dans une autre version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X