繁体   English   中英

错误2002(HY000):无法通过Vagrant中的套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器

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

我在无业游民的mysql服务器有问题。 每当我重新启动我的无业游民框
vagrant reloadvagrant up我得到这个令人困惑的错误。

我的流浪者盒子是这里的: Vagrant-Boxes的 ubuntu/trusty64

此错误已在此处和Askubuntu中得到了多次回答。
但我想知道为什么只有此代码对我有用:

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

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

谁能解释代码的含义?

所有这些答案都没有帮助我从这里进行解释:

mysql错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器
错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器
错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器

这项工作对我来说:

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

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

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

以下脚本

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

确实启动了MySQL服务器。

它的作用是:

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

该命令:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM