ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
同時 mysqladmin 同樣報錯。
/var/run/mysqld/mysqld.pid 失敗 (目錄不存在)/var/lib/mysql/mysql.sock/tmp/mysql.sock,路徑不一致導致連線失敗# 1. 確保 PID 目錄存在
mkdir -p /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld
# 2. 建立 socket 軟連接 (讓客戶端找到真實 socket)
ln -sf /var/lib/mysql/mysql.sock /tmp/mysql.sock
# 3. 驗證連線
mysql -u root -p
# 成功進入 MySQL monitor
[mysqld]
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/lib/mysql/mysql.sock
修改後重啟 MySQL,客戶端無需軟連接即可直連。
| 檔案 | 預設路徑 | 建議統一路徑 |
|---|---|---|
| socket | /tmp/mysql.sock (客戶端) /var/lib/mysql/mysql.sock (服務端) | /var/lib/mysql/mysql.sock |
| pid-file | /var/run/mysqld/mysqld.pid | /var/run/mysqld/mysqld.pid |
# 查看當前 socket 位置
mysql_config --socket
# 或
netstat -ln | grep mysql
統一 socket 路徑,徹底告別 /tmp/mysql.sock 找不到的困擾。