在 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,造成連線失敗。
bin 資料夾,雙擊 mysql 執行檔(或用終端機開啟)。STATUS 指令。/tmp/mysql.sock 或 /usr/local/mysql-8.0.33-macos13-x86_64/tmp/mysql.sock)。/etc/php.ini(若不存在,請複製 /etc/php.ini.default 並重命名)。pdo_mysql.default_socketmysql.default_socketmysqli.default_socketsudo apachectl restart
再次執行 PHP 連線測試程式碼:
<?php
$conn = @mysql_connect("localhost", "root", "12345") or die("資料庫伺服器連線失敗");
echo "連線成功!";
?>
應正常輸出「連線成功!」。
補充說明: 若使用 Homebrew 安裝 MySQL,socket 路徑通常為 /tmp/mysql.sock;若用官方 DMG 安裝,則多在安裝目錄下的 tmp 資料夾。另建議新專案改用 mysqli 或 PDO,mysql_* 函式已棄用。