ERROR 2002(HY000):无法通过socket' /var/run/mysqld/mysqld.sock&#39连接到本地MySQL服务器; (2)在流浪汉

时间:2016-11-04 13:50:09

标签: mysql vagrant ubuntu-14.04

我在流浪汉中遇到了mysql-server的问题。每次我用vagrant reloadvagrant up重新启动我的流浪盒时,我都会遇到这个令人困惑的错误。

我的流浪盒就在这里:ubuntu/trusty64来自 Vagrant-Boxes

在这里和askubuntu已经多次回答了这个错误。
但我想知道为什么只有这个代码对我有用:

su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"

代码来自mysql*处的/etc/init.d/mysql文件。

任何人都可以解释代码的含义吗?

所有这些回复帮助我从这里解释:

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

2 个答案:

答案 0 :(得分:2)

这对我有用:

  1. sudo service mysql stop
  2. sudo usermod -d /var/lib/mysql/ mysql
  3. sudo service mysql start

答案 1 :(得分:1)

错误表示与服务器的连接失败,根本原因是MySQL服务器未运行,很可能是因为它未启动。

您需要确保机器启动脚本以正确的顺序(客户端连接到它之前的服务器)启动MySQL,并确保等待启动实际完成。

以下脚本

su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"

启动MySQL服务器。

它的作用是:

  1. 以mysql用户(su - mysql
  2. 身份登录
  3. 执行shell(-s /bin/sh
  4. 在此shell(-c
  5. 中执行命令
  6. 命令本身为/usr/bin/mysqld_safe > /dev/null 2>&1 &
  7. 此命令:

    1. 启动MySQL服务器(/usr/bin/mysqld_safe
    2. 将标准输出重定向到无处(> /dev/null
    3. 将标准错误重定向到无处(2>&1
    4. 并在后台执行命令(&