ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
客戶端默認讀取 /var/run/mysqld/mysqld.sock,但實際 MySQL 配置(/etc/my.cnf)中指定的是 /tmp/mysql.sock:
[mysqld]
socket = /tmp/mysql.sock
路徑不一致導致連接失敗。
ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
# 確保目錄存在
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/etc/my.cnf,在 [client] 和 [mysqld] 同步設置:[client]
socket = /tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock
systemctl restart mysqld。mysql -uroot -p -S /tmp/mysql.sock 或直接 mysql -uroot -p。mysqladmin variables | grep socket
# 或
SHOW VARIABLES LIKE 'socket';
socket 路徑,客戶端連接時用 -S 參數指定。/tmp 目錄可能被定期清理,建議將 socket 放在 /var/lib/mysql/ 或 /var/run/mysqld/ 並設置粘滯位權限。一條軟連接或一處配置同步,徹底告別 Socket 連接失敗。