【问题标题】:Cygwin connecting to MySQL: Can't connect to local MySQL server through socket '/var/run/mysql.sock'Cygwin 连接到 MySQL:无法通过套接字“/var/run/mysql.sock”连接到本地 MySQL 服务器
【发布时间】:2012-08-07 07:07:12
【问题描述】:

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


【解决方案1】:

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

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 但没有骰子。
  • mysql 命令的 Cygwin 版本在不同位置查找 my.cnf 文件。具体来说,它会查看以下位置:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf。因此,在上面的答案中,将c:\my.ini 更改为~/.my.cnf,它应该可以正常工作。
  • 当我将文件名更改为“my.cnf”时效果很好。谢谢,-
  • 仅供参考,我使用的是 mysql 版本 5.5.16,必须在 .my.cnf 文件中将“主机名”更改为“主机”,如下所示:host=127.0.0.1
  • 艾琳,你是对的,我不知道我怎么弄错了。我确定了答案。谢谢!
【解决方案2】:

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

-h 127.0.0.1

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

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

【讨论】:

    【解决方案3】:

    只是为了节省一些按键,

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

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

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

    【讨论】:

      【解决方案4】:

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

      alias mysql="mysql -h 127.0.0.1"
      

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

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

      【讨论】:

        【解决方案5】:

        根据 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 &
        

        然后一切都开始工作了。

        【讨论】:

          【解决方案6】:

          这是从 cygwin 运行 MYSQL 的方法

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

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

          mysql_install_db
          

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

          mysql_secure_installation
          

          【讨论】:

            猜你喜欢
            • 2011-07-19
            • 1970-01-01
            • 2011-05-25
            • 2018-10-09
            相关资源
            最近更新 更多