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

4

6 回答 6

26

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

mysql -u root -p -h 127.0.0.1

您还可以创建一个my.inimysql 将使用的:

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

于 2012-08-10T00:34:43.627 回答
7

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

-h 127.0.0.1

问题是 mysql 客户端默认主机是 localhost,它特别对待 localhost,使用通过该文件访问的 unix 套接字,但您的服务器可能未配置为侦听 unix 套接字。

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

于 2012-08-10T00:33:39.110 回答
1

只是为了节省一些按键,

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

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

添加后,您只需在终端中输入“mysql”即可直接进入 mysql。

于 2015-04-14T09:58:15.617 回答
0

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

alias mysql="mysql -h 127.0.0.1"

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

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

于 2016-12-05T07:06:03.867 回答
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 &

然后一切都开始工作了。

于 2018-03-02T20:04:43.420 回答
-1

这是MYSQL从cygwin运行的方法

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

要开始MySQL安装,请运行以下命令:

mysql_install_db

运行 mysql - 如果您激活它,您将从 Windows 收到防火墙警报。 mysqld_safe& 紧接着,明智的做法是运行以下命令:

mysql_secure_installation
于 2016-01-12T02:30:24.533 回答