从cygwin连接到MySQL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我可以通过DOS提示符成功地连接到MySQL,但是当我尝试从cygwin连接时,它只是挂起。

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

怎么了?

提问于
用户回答回答于

假设你有一个原生Windows构建的MySQL,在DOS(命令提示符)窗口和bash...。提示mysql没有出现。

要确认这一点,请输入一个命令并返回--它可能会工作,但是命令的提示和回声(您正在键入的内容)正在丢失。

中的任何一个都可能有一个解决方案。CYGWIN系统属性bash但我从来没花时间想过这个问题。

用户回答回答于

我刚看到这个,当我看到有人提到你在cygwin运行的Windows/DOS命令时,我做了一个which mysql这给了我:

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

所以我运行Setup.exe搜索“MySQL”并安装最新的“MySQL客户端”。现在which mysql看起来:

$ which mysql
/usr/bin/mysql

而MySQL命令在cygwin中工作:)

虽然这是个老问题,但如果能在这里得到实际答案,那就太好了,因为人们(像我一样)可能仍然会遇到这个问题。

如果试图从Cygwin运行MySQL客户端,请返回以下错误:

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

然后,可以通过添加显式来修复它。-h 127.0.0.1命令行的选项,如:

$ mysql -u root -p -h 127.0.0.1

避免指定-h 127.0.0.1在命令行上,每次连接时,都可以添加:

[client]
host=127.0.0.1

到文件/etc/my.cnf

在Cygwin的某些安装中,指定-h可能还不够。如果是,请尝试指定:

--protocol=tcp

或添加

protocol=tcp

to the config file.

扫码关注云+社区