1.问题描述

连接MySQL出现如下错误:

# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

2.原因分析

看起来是在尝试通过本地 Unix socket /tmp/mysql.sock 连接 MySQL,但该 socket 文件不存在。可能是因为 MySQL 使用了不同的 socket 路径。

查询 mysql.sock 存放路径:

# find / -name mysql.sock
/mysql/data/mysql.sock

所以 socket 的正确路径为/mysql/data/mysql.sock 。

3.处理方法

指定正确的 socket 路径连接 MySQL:

# mysql -uroot -p --socket=/mysql/data/mysql.sock