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

时间:2012-08-10 00:28:30

标签: 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)

确实,没有“/var/run/mysql.sock”文件。

5 个答案:

答案 0 :(得分:24)

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

mysql -u root -p -h 127.0.0.1

您还可以创建mysql将使用的my.ini

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

答案 1 :(得分:7)

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

-h 127.0.0.1

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

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

答案 2 :(得分:1)

只是为了节省一些关键任务,

在〜/ .bashrc文件中添加以下别名。

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

添加此内容后,您只需在终端中输入“mysql”即可。你去了mysql里面。

答案 3 :(得分:0)

根据Rafael Hart的说法,我在我的电脑上成功地在Cygwin中安装了MySQL。我创建了一个数据库并执行了一些查询,一切都很好。 第二天,当我尝试登录MySQL时,出现错误:

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

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

$ mysqld_safe &

然后一切都开始了。

答案 4 :(得分:-1)

以下是如何从cygwin

运行MySQL

转到此处:
https://cygwin.rafaelhart.com/setting-up-mysql-on-cygwin/

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

mysqld_safe

运行mysql - 如果激活它,您将从Windows获得防火墙警报。 mysql_secure_installation &紧接着,运行以下内容是明智的:

disabled