Ubuntu 错误 2002“无法通过套接字连接到本地 MySql 服务器…”

Ubuntu 错误 2002“无法通过套接字连接到本地 MySql 服务器…”

我正在尝试在我的 Ubuntu 10.04 LTS (lucid) 系统上访问 MySql。我知道有很多针对此错误的结果,但似乎没有一个对我有帮助。我是 Linux 新手,所以任何帮助可能需要详细说明。

跑步时

mysql -u root -p

在命令提示符下,我收到错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

sock 文件肯定存在;运行

sudo ls -la /var/lib/mysql

包括以下行

-rwxrwxr-- 1 mysql mysql 0 2011-11-03 19.05 mysql.sock

在父目录上运行 ls 如下所示

sudo ls -la /var/lib
drwxr-xr-- 5 mysql mysql 4096 2011-11-03 18.14 mysql

我认为 MySql 正在运行;

sudo service mysql start

结果是

mysql start/running

my.cnf 文件(位于 /etc/mysql/)包含以下行

socket = /var/lib/mysql/mysql.sock

在 [mysqld] 部分下。

任何指点都将不胜感激。该网站是实时的,并且由于它托管了 WordPress 安装,因此无法访问 MySql 会完全破坏该网站!

编辑

来自评论的输出;

ps -ef | grep mysql
mysql     1869     1  0 20:15 ?        00:00:00 /usr/sbin/mysqld
pete      1953  1713  0 20:36 pts/0    00:00:00 grep --color=auto mysql

答案1

mysql.sock 不是一个套接字文件,它是一个 0 字节大小的标准文件。

我将 (1) 终止 mysql,(2) 删除 mysql.sock 文件,然后 (3) 重新启动 mysql,这将正确生成套接字文件。执行 ls -l mysql.sock 时,您应该会看到如下所示的套接字文件。

 srwxrwxrwx 1 mysql mysql            0 2011-10-06 15:25 mysql.sock

答案2

mysqld 的套接字文件应该位于 下的某个位置/var/run。在我的 Debian 系统上,它是/var/run/mysqld/mysqld.sock

/var/lib/mysql是实际数据库的目录,而不是运行时信息。

相关内容