首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

macOS 安裝 MySQL 避坑指南:官方 DMG vs Homebrew、Socket 路徑、自動啟動

     編輯:MySQL 資料庫相關知識

兩條安裝路徑對比

維度官方 DMGHomebrew
安裝包.dmg 含 pkg + StartupItem + PrefPanebrew install mysql
路徑/usr/local/mysql-/ (symlink /usr/local/mysql)/opt/homebrew/opt/mysql (Apple Silicon) / /usr/local/opt/mysql (Intel)
Socket/tmp/mysql.sock/tmp/mysql.sock (可配置)
啟動管理LaunchDaemon / PrefPane / mysql.serverbrew services start mysql
版本切換手動重裝brew switch mysql 5.7 / brew link mysql@5.7
推薦場景生產一致性、GUI 偏好、單版本長期開發多版本並行、包管理習慣

官方 DMG 標準安裝流程(推薦)

  1. 下載 mysql--macos-x86_64.dmg
  2. 依序安裝:
    • mysql-.pkg
    • MySQLStartupItem.pkg(開機自啟)
    • MySQL.prefPane(系統偏好設定面板)
  3. 設定 PATH:
    
    echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    
  4. 設定 root 密碼:
    
    mysqladmin -u root password 'new_password'
    

Homebrew 安裝要點


brew install mysql@8.0  # 或 mysql@5.7
brew services start mysql@8.0
# 臨時啟動不開機自啟
/opt/homebrew/opt/mysql@8.0/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql &

Socket 路徑衝突:PHP/應用連線失敗

現象:Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'

原因:PHP 預設找 /var/mysql/mysql.sock,MySQL 實際建在 /tmp/mysql.sock。

三種修復

  1. 修改 php.ini(推薦):mysql.default_socket = /tmp/mysql.sock / pdo_mysql.default_socket = /tmp/mysql.sock
  2. 建立軟連結:sudo mkdir -p /var/mysql && sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
  3. my.cnf 指定:[client] socket = /tmp/mysql.sock

自動啟動現代做法:launchd

DMG 內建 MySQLStartupItem.pkg 屬舊式 StartupItems,macOS 10.10+ 建議用 launchd:


sudo tee /Library/LaunchDaemons/com.mysql.mysqld.plist > /dev/null <<'EOF'




  Labelcom.mysql.mysqld
  ProgramArguments
  
    /usr/local/mysql/bin/mysqld_safe
    --user=mysql
  
  RunAtLoad
  KeepAlive
  StandardErrorPath/var/log/mysql/error.log
  StandardOutPath/var/log/mysql/output.log


EOF

sudo mkdir -p /var/log/mysql && sudo chown mysql:mysql /var/log/mysql
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

常用別名與工具


# ~/.zshrc
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
alias mysqldump='/usr/local/mysql/bin/mysqldump'
alias mysql-start='sudo launchctl start com.mysql.mysqld'
alias mysql-stop='sudo launchctl stop com.mysql.mysqld'
alias mysql-status='sudo launchctl list | grep mysql'

小結

macOS 裝 MySQL:生產一致性選官方 DMG,開發多版本選 Homebrew。必解決 Socket 路徑衝突,建議用 launchd 管理自啟,配上幾個 alias 終端操作絲滑。

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