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

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

我刚刚升级了 Debian 上的 MySQL 服务器。但是现在当我启动服务器并尝试连接它时,我收到错误:

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

我怎样才能解决这个问题?

答案1

我知道这个问题已经有五个月了,但由于我在三次不同的升级中遇到了同样的问题,所以我想无论如何都要发布我的解决方案。

就我而言,这似乎是由于 Debian 更新脚本中的一个错误造成的(因此这个问题也可能出现在 Ubuntu 中)。不知何故,升级过程完成后,一些二进制日志文件最终归属错误。这阻止服务器获得对其自身日志的写访问权限,因此无法启动。

在 Debian 上(至少在我们的服务器上),这些文件都位于 中/var/lib/mysql。其中的所有内容都应归用户 mysql 和组 mysql 所有。但是,mysql-bin.*升级后,部分文件归 root 所有。将日志文件的所有权改回 mysql 后,服务器便可以正常启动:

# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start

我希望这可以为某些人节省一些时间。

答案2

尝试以下操作

mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql

然后启动mysql......

答案3

MySQL 很可能无法启动。尝试运行ps aux | grep mysqld以查看 mysql 守护程序是否有进程 ID。

为了进一步阐述 Shane 的评论,请查看 MySQL 日志以了解其无法启动的原因。默认位置是/var/log/mysql/error.log

答案4

首先启动mysql服务器

然后运行此命令

ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock

相关内容