错误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) 

我该如何解决这个问题?

我知道这个问题已经有五个月的时间了,但是由于我在三次不同的升级中遇到了同样的问题,所以我想我会发布我的解决scheme。

在我的情况下,这似乎是由于在Debian更新脚本中的错误(所以这个问题也可能在Ubuntu中出现)。 不知何故,升级过程完成后,一些二进制日志文件将被归为错误的所有权。 这可以防止服务器获得对自己的日志的写入权限,因此无法启动。

在Debian上(至less在我们的服务器上)这些文件都存在于/var/lib/mysql 。 那里的一切都应该由用户mysql和组mysql来拥有。 但是,一些文件mysql-bin.*在升级之后由root拥有。 将日志文件的所有权更改回mysql允许服务器正确启动:

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

我希望这能节省一些时间。

尝试以下

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

然后启动mysql …

MySQL最有可能启动失败。 尝试运行ps aux | grep mysqld ps aux | grep mysqld来查看是否有mysql守护进程的进程ID。

为了扩展Shane的评论,查看MySQL日志找不到启动的原因。 默认位置是/var/log/mysql/error.log

首先启动mysql服务器

然后运行这个命令

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