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

问题描述 投票:11回答:6

我刚刚在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”文件。

mysql cygwin
6个回答
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


7
投票

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

-h 127.0.0.1

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

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


1
投票

只是为了节省一些按键,

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

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

添加之后,您只需在终端中键入“mysql”,然后在mysql中直接进入。


0
投票

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

alias mysql="mysql -h 127.0.0.1"

不要忘记您必须重新启动会话才能使此解决方案正常工作,或者您可以在同一终端会话中键入bash命令 - 它将重新加载您的所有bash设置。祝好运!

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


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")

显然,当您关闭PC时,服务也会关闭,并且不会在启动时重新启动。要解决此问题,我键入以下命令以重新启动mysqld服务:

$ mysqld_safe &

一切都开始了。


-1
投票

以下是如何从cygwin运行MYSQL

到这里: https://cygwin.rafaelhart.com/setting-up-mysql-on-cygwin/

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

mysql_install_db

运行mysql - 如果你有活动的话,你将从windows获得防火墙警报。 mysqld_safe&紧随其后,运行以下内容将是明智之举:

mysql_secure_installation
© www.soinside.com 2019 - 2024. All rights reserved.