首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

macOS MySQL 連線錯誤 #2002:socket 檔案路徑不匹配修復

     編輯:程式設計綜合問答

錯誤

`#2002 - No such file or directory` 連線本地 MySQL,常見於 macOS 升級 (10.10 → 10.11+) 後。

原因

MySQL 預設 socket 路徑 `/tmp/mysql.sock`,PHP/Client 預設尋找 `/var/mysql/mysql.sock` (或 `/var/run/mysqld/mysqld.sock`),路徑不一致導致連線失敗。

標準修復:建立符號連結


sudo mkdir -p /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
# 或 MySQL 安裝在 /usr/local/mysql:
sudo ln -s /usr/local/mysql/data/mysql.sock /var/mysql/mysql.sock

替代方案:修改 PHP/MySQL 設定統一路徑

  1. php.ini: `pdo_mysql.default_socket = /tmp/mysql.sock` / `mysqli.default_socket = /tmp/mysql.sock`。
  2. my.cnf (MySQL 端): `[client] socket = /var/mysql/mysql.sock` 及 `[mysqld] socket = /var/mysql/mysql.sock`。

驗證


mysql -u root -p -S /tmp/mysql.sock  # 指定 socket 連線測試
php -r "new PDO('mysql:host=localhost;dbname=test', 'root', 'pass');"  # PHP 連線測試

升級 macOS 後 socket 路徑變更是常見問題,**建立 `/var/mysql/mysql.sock` 指向實際 socket 的 symlink 最快解決**。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved