首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Mac 上 PHP 連線 MySQL 失敗?Socket 路徑不匹配解決教學

     編輯:MySQL 綜合教學

Mac 上 PHP 連線 MySQL 失敗?Socket 路徑不匹配解決教學

在 Mac 開發環境中,phpMyAdmin 能正常連線 MySQL,但 PHP 程式碼使用 mysql_connect("localhost", ...) 卻報錯「資料庫伺服器連線失敗」。這通常是因為 PHP 尋找的 MySQL socket 檔案路徑與實際安裝路徑不一致導致。

問題根因

Mac 版 MySQL 安裝路徑通常為 /usr/local/mysql_<版本>_osx10.*_x86_64,其 socket 檔案位於該目錄下的 tmp/mysql.sock,而 PHP 預設尋找 /tmp/mysql.sock 或 /var/mysql/mysql.sock,造成連線失敗。

解決步驟

1. 確認 MySQL 實際 Socket 路徑

  1. 進入 MySQL 安裝目錄的 bin 資料夾,雙擊 mysql 執行檔(或用終端機開啟)。
  2. 在 MySQL 命令列輸入 STATUS 指令。
  3. 找輸出中的 UNIX socket 欄位,記錄其路徑(例如 /tmp/mysql.sock 或 /usr/local/mysql-8.0.33-macos13-x86_64/tmp/mysql.sock)。

2. 修改 PHP 設定檔

  1. 開啟 /etc/php.ini(若不存在,請複製 /etc/php.ini.default 並重命名)。
  2. 搜尋並修改以下三項設定為步驟 1 取得的 socket 路徑:
    • pdo_mysql.default_socket
    • mysql.default_socket
    • mysqli.default_socket
  3. 儲存檔案。

3. 重啟 Apache 套用設定

sudo apachectl restart

驗證修復

再次執行 PHP 連線測試程式碼:

<?php
$conn = @mysql_connect("localhost", "root", "12345") or die("資料庫伺服器連線失敗");
echo "連線成功!";
?>

應正常輸出「連線成功!」。

補充說明: 若使用 Homebrew 安裝 MySQL,socket 路徑通常為 /tmp/mysql.sock;若用官方 DMG 安裝,則多在安裝目錄下的 tmp 資料夾。另建議新專案改用 mysqli 或 PDO,mysql_* 函式已棄用。

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