我刚遇到这个,当我读到有人提到它是你在 cygwin 中运行的 windows/DOS 命令时,我做了一个which mysql,这给了我:
$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql
所以我运行 cygwin 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
基于 cmets 的更新:
为避免每次连接时在命令行中指定-h 127.0.0.1,可以添加:
[client]
host=127.0.0.1
到文件/etc/my.cnf
在某些 Cygwin 安装中,使用 -h 指定主机可能不够。如果是这样,请尝试同时指定:
--protocol=tcp
或添加
protocol=tcp
到配置文件。