XAMPP 安裝後,MySQL 二進制檔在 /Applications/XAMPP/bin/mysql。直接輸入 mysql 會提示 command not found,建立軟連結卻因 macOS SIP(系統完整性保護)導致 /usr/bin 不可寫。本文記錄從零到連線成功的完整步驟,含 SIP 臨時關閉與恢復。
mysql -u root -p → 若成功則結束。sudo ln -s /Applications/XAMPP/bin/mysql /usr/local/bin/mysql
# 注意:/usr/local/bin 在 PATH 中且不受 SIP 保護,優於 /usr/bin
Operation not permitted:說明 SIP 生效,需進入復原模式關閉。Command + R 進入復原模式。csrutil disable,再 reboot。mysql -u root -p → 成功。csrutil enable → reboot。Can't connect to local MySQL server through socket。| 問題 | 說明 |
|---|---|
為什麼不建議連結到 /usr/bin? | 受 SIP 保護,即使 csrutil disable 後系統更新會還原,且汙染系統目錄。 |
/usr/local/bin 為何安全? | 用戶空間,Homebrew 等套件管理器預設安裝路徑,不受 SIP 限制。 |
| XAMPP 的 socket 檔在哪? | /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock,客戶端預設尋找 /tmp/mysql.sock,若連線失敗可加 --socket=... 或建立軟連結 ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock。 |
| Root 密碼預設為空 | 首次連線直接按 Enter,建議立即執行 mysql_secure_installation 設定密碼。 |
# 1. 直接用完整路徑
/Applications/XAMPP/bin/mysql -u root -p
# 2. 或加入別名到 ~/.zshrc / ~/.bash_profile
alias mysql='/Applications/XAMPP/bin/mysql'
alias mysqladmin='/Applications/XAMPP/bin/mysqladmin'
# source ~/.zshrc 生效
這是最乾淨、最安全、避免系統層面修改的做法,強烈推薦。
macOS 上使用 XAMPP MySQL,核心是解決「客戶端二進制路徑不在 PATH」與「socket 路徑不匹配」兩個問題。用 alias 或 /usr/local/bin 軟連結解決前者,用 --socket 或 /tmp/mysql.sock 軟連結解決後者,完全不需要關閉 SIP。保持系統安全,開發更安心。