“无法通过套接字连接到本地MySQL服务器”并删除套接字

这是一个常见的错误,但所有的答案都不能解决我的问题:

当我启动mysql时,我有:

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

所以在阅读了一些答案之后,我将它在my.cnf中更改为/var/lib/mysql/mysql.sock和/tmp/mysql.sock,但每次都有同样的问题。

无奈之下,我删除了/ var / run / mysqld中的mysql.sock,但是当我执行mysqld start或者service mysql start (每个都停止之后)时,并没有创build它。

我在Ubuntu 10.04,与LAMP服务器。

谢谢。

检查这些目录的权限或文件正在使用中。

这是一个权限scheme。 假设你安装了MySQL,并以root用户身份运行,你可以pipe理启动数据库,并意外地将它写入/ tmp目录中一个拥有root权限的已命名套接字。 你以暴力的方式杀死这个进程,并且不会发生清理。

然后,稍后,您尝试以普通用户的身份启动MySQL,这可能需要使用特殊的mysql用户(分发到您的系统上)。 由于指定的套接字存在,所以失败。 因为它没有权限打根,所以失败了。

然后重新启动,在系统启动之前可以擦除所有的/ tmp。 现在什么都没有了,MySQL服务器出现了,没有任何冲突,神奇的是它似乎都起作用了。

不是说这是发生了什么事情,但是当发生这样的事情时,我的大部分困境都certificate某些目录在这个过程中没有写权限,或者这个文件已经存在,并且不能被一个真实的帐户删除。

很高兴听到你修好了,但。

问题解决了:我重新启动我的服务器,它工作正常:)(跆拳道?)。

相关命令:

 /etc/init.d/mysqld restart /etc/init.d/mysqld stop /etc/init.d/mysqld start