【问题标题】:MYSQL : PHP ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)MYSQL : PHP ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
【发布时间】:2012-09-19 06:08:40
【问题描述】:

当我尝试使用

登录 mysql shell 时
mysql -u root -p

我收到了

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

请帮我看看mysql有什么问题

我可以使用mysql --host=127.0.0.1 frontend登录

更新 /etc/hosts

  127.0.0.1       localhost
    127.0.1.1       shweta-desktop
    127.0.0.1       webfaction
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

【问题讨论】:

  • 请将您的 /etc/hosts 文件添加到问题中
  • netstat -ln | grep mysql 会告诉你套接字路径在哪里

标签: mysql


【解决方案1】:

关于您的评论,sandhaya 的答案没有错。 在 Serverfault 和 cmets 上查看此答案: https://serverfault.com/questions/295285/mysql-cannot-connect-via-localhost-only-127-0-0-1

总结一下:如果你使用特殊的虚拟主机名“localhost”(默认)连接到 mysql,mysql 会尝试连接到 /etc/my.conf 中指定的套接字。 这似乎是一个不正确的。 我不能说您的主机别名有什么问题,您的 /etc/hosts 似乎是正确的。 所以用127.0.0.1连接其实是一种解决办法,另一种是找到正确的socet,放到你的/etc/my.conf中。

【讨论】:

    【解决方案2】:

    我遇到了这个问题。我发现我在 /root 中有一个包含信息的 .netrc。

    我删除了它,问题消失了。

    现在可以使用mysql -uroot -p 登录mysql,没有问题。

    【讨论】:

      【解决方案3】:

      我发现是因为mysql数据库没有运行使用这个命令来启动它

      service mysqld start
      

      【讨论】:

      • 我认为你的意思是“服务 mysql 启动”
      • @PSeUdocode 不,RedHat 风格的 mysql 守护程序服务称为 mysqld。说它没有运行该命令有点不正确。您通常设置chkconfig 以使服务在启动时启动。以上命令用于手动启动/停止
      猜你喜欢
      • 2014-04-12
      • 2019-09-28
      • 2021-08-15
      • 2018-08-01
      • 2017-03-18
      • 1970-01-01
      • 2022-06-30
      • 2017-02-12
      • 2012-08-13
      相关资源
      最近更新 更多