Cygwin连接到MySQL:无法通过套接字'/var/run/mysql.sock'连接到本地MySQL服务器

Dav*_*e A 11 mysql cygwin

我刚刚在WinXP上安装了MySQL 5.5.27.当我打开命令提示符(开始 - >运行,并键入"cmd")时,我可以通过运行"mysql -u root -p"来访问MySQL.但是,当我打开Cygwin终端并尝试相同的操作时,我收到此错误

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

实际上,没有"/var/run/mysql.sock"文件.

Ros*_* II 24

如果在命令行上指定主机,则此问题应该消失:

mysql -u root -p -h 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

你也可以创建一个my.inimysql将使用的:

echo [client] >c:\my.ini
echo user=root >>c:\my.ini
echo host=127.0.0.1 >>c:\my.ini
Run Code Online (Sandbox Code Playgroud)

然后你可以输入:

mysql -p
Run Code Online (Sandbox Code Playgroud)

你甚至可以添加密码:

echo password="abracadabra" >>c:\my.ini
Run Code Online (Sandbox Code Playgroud)

然后,输入:

mysql
Run Code Online (Sandbox Code Playgroud)

而你在!

另请参见https://serverfault.com/questions/337818/how-to-force-mysql-to-connect-by-tcp-instead-of-a-unix-socket

  • `mysql`命令的Cygwin版本在`my.cnf`文件的不同位置查找.具体来说,它位于以下位置:`/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf~/.my.cnf`.所以,在上面的答案中,将`c:\ my.ini`更改为`〜/ .my.cnf`,它应该可以正常工作. (6认同)

Joh*_*ter 7

尝试将此添加到您的命令:

-h 127.0.0.1

问题是mysql客户端默认主机是localhost,它使用通过该文件访问的unix套接字专门处理localhost,但是您的服务器可能没有配置为侦听unix套接字.

但是,如果您通过环回IP 127.0.0.1访问同一服务器,它将使用TCP套接字而不是unix套接字(假设服务器在线)它应该工作.