错误 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
我在 vagrant 中的 mysql-server 有问题。每次我用
vagrant reload
或 vagrant up
重新启动我的 vagrant box 时,我都会收到这个令人困惑的错误。
我的 vagrant box 是这个: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)
该错误表示与服务器的连接失败,根本原因是MySQL
服务器不是运行,很可能是因为它没有启动。
您需要确保机器启动脚本确实以正确的顺序启动 MySQL
(服务器在客户端连接到它之前),并确保等待启动真正完成。
以下脚本
su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"
启动 MySQL 服务器。
它的作用是:
- 以 mysql 用户身份登录 (
su - mysql
)
- 执行 shell (
-s /bin/sh
)
- 在此shell (
-c
) 中执行命令
- 命令本身是
/usr/bin/mysqld_safe > /dev/null 2>&1 &
这个命令:
- 启动 MySQL 服务器(
/usr/bin/mysqld_safe
)
- 将标准输出重定向到无处 (
> /dev/null
)
- 也将标准错误重定向到无处 (
2>&1
)
- 并在后台执行命令(
&
)
这对我有用:
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start
我在 vagrant 中的 mysql-server 有问题。每次我用 vagrant reload
或 vagrant up
重新启动我的 vagrant box 时,我都会收到这个令人困惑的错误。
我的 vagrant box 是这个: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)
该错误表示与服务器的连接失败,根本原因是MySQL
服务器不是运行,很可能是因为它没有启动。
您需要确保机器启动脚本确实以正确的顺序启动 MySQL
(服务器在客户端连接到它之前),并确保等待启动真正完成。
以下脚本
su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"
启动 MySQL 服务器。
它的作用是:
- 以 mysql 用户身份登录 (
su - mysql
) - 执行 shell (
-s /bin/sh
) - 在此shell (
-c
) 中执行命令
- 命令本身是
/usr/bin/mysqld_safe > /dev/null 2>&1 &
这个命令:
- 启动 MySQL 服务器(
/usr/bin/mysqld_safe
) - 将标准输出重定向到无处 (
> /dev/null
) - 也将标准错误重定向到无处 (
2>&1
) - 并在后台执行命令(
&
)
这对我有用:
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start