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

14

我刚刚在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)

实际上,不存在"/var/run/mysql.sock"文件。


6个回答

26

如果你在命令行中指定主机名,这个问题应该就会消失:

mysql -u root -p -h 127.0.0.1

你也可以创建一个my.ini文件,MySQL将使用它:

echo [client] >c:\my.ini
echo user=root >>c:\my.ini
echo host=127.0.0.1 >>c:\my.ini

那么你可以直接输入:

mysql -p

你甚至可以添加密码:

echo password="abracadabra" >>c:\my.ini

然后,只需输入:

mysql

你已经登录成功!

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


我喜欢您的解决方案,因为我不必每次都指定“-h 127.0.0.1”,但是当我尝试时,仍然出现了相同的错误。我甚至将文件名更改为/cygdrive/c/my.ini,但还是不行。 - Dave A
6
Cygwin版本的mysql命令在不同位置查找my.cnf文件,具体而言,它在以下位置查找:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf。因此,在上面的答案中,将c:\my.ini更改为~/.my.cnf,就可以正常工作了。 - Ross Smith II
1
当我将文件名更改为“my.cnf”时,它运行得很好。谢谢,- - Dave A
1
我正在使用MySQL版本5.5.16,并且不得不在.my.cnf文件中将“hostname”更改为“host”,如下所示: host = 127.0.0.1。 - Erin Heyming
Erin,你说得对,我不知道我怎么会错了。我已经修正了答案。谢谢! - Ross Smith II

7
尝试将以下内容添加到您的命令中:-h 127.0.0.1。问题在于mysql客户端默认主机是localhost,并且它会特殊处理localhost,使用通过该文件访问的unix套接字,但您的服务器可能未配置为侦听unix套接字。然而,如果您通过环回IP 127.0.0.1访问同一服务器,则将使用TCP套接字而不是unix套接字,并且(假设服务器在线)应该可以正常工作。

1

为了省去几个按键,

将以下别名添加到您的~/.bashrc文件中。

alias mysql='mysql -u root -h 127.0.0.1'

在添加此项后,您只需在终端中输入“mysql”,然后就可以进入mysql了。

0

我按照Rafael Hart的指示,在我的PC上成功地在Cygwin中安装了MySQL。我创建了一个数据库并执行了一些查询,一切都很顺利。

第二天当我尝试登录MySQL时,我遇到了以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (111 "Connection refused")

显然,当您关闭计算机时,服务也会关闭,并且不会在启动时重新启动。 为了解决这个问题,我输入了以下命令来重新启动mysqld服务:

$ mysqld_safe &

然后一切开始正常工作。


0

正如大多数人在这里提到的 - 其中一个解决方案是使用别名。说实话,我不喜欢它们,因为它们阻止了我学习一些非常好的Linux命令 :) 这只是个玩笑。但我认为,对你来说最好的方法是找到位于你的主目录下的~/.bashrc文件,并在其中添加以下内容:

alias mysql="mysql -h 127.0.0.1"

别忘了你必须重新启动会话才能使这个解决方案生效,或者你可以在同一个终端会话中输入bash命令 - 它将重新加载所有的bash设置。祝你好运!

P.S. 我建议你在编辑.bashrc之前关闭所有其他终端窗口,因为你可能只有一个只读文件。我在Win7x64下遇到过这样的问题。


-1

以下是如何在cygwin中运行MYSQL

请前往此处:
https://cygwin.rafaelhart.com/setting-up-mysql-on-cygwin/

要开始设置MySQL,请运行以下命令:

mysql_install_db

运行mysql - 如果您已经启用了防火墙,Windows会发出警报。 mysqld_safe & 紧接着,最好运行以下命令:

mysql_secure_installation

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接