在 macOS 上安裝 MySQL,官方 DMG 安裝包是最穩定、最省心的方式。本文記錄從下載、安裝、啟動配置、環境變量設置、PHP 連接修復到密碼管理的完整流程,適用 macOS 10.12+ 至最新版本(含 Apple Silicon M 系列晶片)。
mysql--macos-.dmg mysql-8.0.36-macos14-x86_64.dmg 或 mysql-8.0.36-macos14-arm64.dmg (M 系列晶片)掛載 DMG 後會出現三個安裝包,必須按以下順序安裝:
/usr/local/mysql- 並建立 /usr/local/mysql 符號鏈接/Library/StartupItems/MySQLCOM)# 編輯 shell 配置檔(zsh 為 macOS Catalina+ 預設)
vim ~/.zshrc
# 或 bash
vim ~/.bash_profile
# 添加別名
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
alias mysqldump=/usr/local/mysql/bin/mysqldump
# 重新載入配置
source ~/.zshrc
# 或
source ~/.bash_profile
# 測試
mysql --version
# mysql Ver 8.0.36 for macos14.2 on x86_64 (MySQL Community Server - GPL)
cat /tmp/mysql_install.log | grep 'temporary password'# 使用臨時密碼登入
mysql -u root -p
# 輸入臨時密碼
# 修改密碼(MySQL 5.7+)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword123!';
# 或使用 mysqladmin(舊版相容)
mysqladmin -u root -p'TempPassword' password 'NewStrongPassword123!'
# 刷新權限
FLUSH PRIVILEGES;
| 方式 | 啟動 | 停止 | 重啟 | 狀態 |
|---|---|---|---|---|
| 系統偏好設定 | 點擊 MySQL 圖示 → Start/Stop MySQL Server、勾選 Automatically Start MySQL Server on Startup | |||
| 命令列 (launchctl) | sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist | sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist | 停止後啟動 | sudo launchctl list | grep mysql |
| mysql.server 腳本 | sudo /usr/local/mysql/support-files/mysql.server start | sudo /usr/local/mysql/support-files/mysql.server stop | sudo /usr/local/mysql/support-files/mysql.server restart | sudo /usr/local/mysql/support-files/mysql.server status |
問題: PHP 預設尋找 /var/mysql/mysql.sock,但 macOS MySQL 實際建立在 /tmp/mysql.sock,導致 Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'
# 找到 php.ini 位置
php --ini
# 載入的配置檔: /usr/local/etc/php/8.2/php.ini
# 編輯修改
vim /usr/local/etc/php/8.2/php.ini
# 找到並修改以下兩行(取消註釋並修改)
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
# 重啟 PHP-FPM / Apache 生效
brew services restart php@8.2
# 或
sudo apachectl restart
sudo mkdir -p /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
# 需確保 _mysql 用戶有權限訪問 /tmp/mysql.sock
arm64 原生版效能更好lsof -i :3306 找到進程殺掉,或修改 /usr/local/mysql/my.cnf 端口sudo chown -R _mysql:_mysql /usr/local/mysql/data--skip-grant-tables 啟動 → 免密登入 → 修改密碼 → 正常重啟sudo /usr/local/mysql/support-files/mysql.server stop
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
sudo rm -rf /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
sudo rm -rf /var/mysql
# 移除環境變量別名
# 安裝
brew install mysql@8.0 # 或 mysql@5.7
# 啟動服務
brew services start mysql@8.0
# 設置密碼(brew 安裝預設無密碼)
mysql_secure_installation
# 環境變量(brew 自動處理,通常無需手動配置)
echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
brew install mysql,版本管理、升級、多版本切換、服務管理極其方便。生產環境或需精確控制版本時使用官方 DMG。
完成上述步驟,您的 macOS 即擁有一個穩定、可圖形化管理、命令列友好的 MySQL 開發環境。建議配合 MySQL Workbench、Sequel Ace、TablePlus 等 GUI 工具提升開發效率。