Mac 上管理多个 MySQL 实例的经验 🍺

最近在本地开发 Express 项目时,发现我的 Mac 上居然装了两个 MySQL,版本还不一样,折腾了一番终于理清了。记录一下,希望对你有帮助。


一、如何启动本地 MySQL 服务

在 macOS 上,MySQL 的安装方式决定了启动方式:

1. Homebrew 安装(推荐)

# 启动(后台运行,开机自启)
brew services start mysql

# 停止
brew services stop mysql

# 重启
brew services restart mysql

# 查看运行状态
brew services list | grep mysql

2. 官方 .dmg 安装

  • 打开 系统偏好设置MySQL
  • 点击 Start MySQL Server 按钮
  • 可勾选「开机自启」

3. 手动启动

mysql.server start
mysql.server stop

二、查看 MySQL 版本

多种方式任选:

# 终端直接查看
mysql --version

# 登录后查看
mysql -u root -p
SELECT VERSION();
STATUS;

# Homebrew 信息
brew info mysql
brew list --versions mysql

三、brew info mysql 和 mysql --version 版本不一致?

这是最让我困惑的问题,后来发现可能的原因有三个:

1️⃣ brew info 显示的是最新可用版本

它不一定等于你实际安装的版本:

brew list --versions mysql   # 这才是你真正装的版本

2️⃣ PATH 中存在多个 MySQL

你很可能同时用 Homebrew 和 .dmg 装了两个 MySQL:

which mysql          # 当前用的是哪个
which -a mysql       # 列出所有存在的 mysql

3️⃣ 客户端和服务端版本不同

mysql --version 只显示客户端版本,服务器版本可能不同。


四、真实案例:一台 Mac,两个 MySQL

我的情况是这样的:

来源 版本 路径 管理方式
.dmg 安装 8.3.0 /usr/local/mysql-8.3.0-macos14-x86_64 系统偏好设置面板
Homebrew 9.7.1 /usr/local/Cellar/mysql/... brew services

终端 mysql --version 显示 9.7.1,系统偏好设置面板显示 8.3.0。

解决方案:卸载旧版本,只留 Homebrew

第一步:在「系统偏好设置 → MySQL」面板中点击 Uninstall

第二步:清理残留文件:

sudo rm -rf /usr/local/mysql-8.3.0-macos14-x86_64
sudo rm -rf /usr/local/mysql
sudo rm -f /etc/my.cnf

第三步:确保 Homebrew 版本接管:

brew services restart mysql
mysql --version
# ✅ mysql  Ver 9.7.1 for macos14.8 on x86_64 (Homebrew)

五、系统偏好设置面板能显示 Homebrew 版本吗?

答案是:不能。

安装方式 系统偏好面板支持 升级方式 推荐度
Homebrew (brew install mysql) brew upgrade mysql 一键搞定 ⭐⭐⭐
官方 .dmg 手动下载安装

系统偏好面板只认 /usr/local/mysql* 路径下的安装,Homebrew 装在其他位置,两者不互通。

所以,二选一就好:要么用 .dmg + 面板,要么用 Homebrew + 命令行。我个人推荐后者。


六、常见问题速查

问题 命令 / 方案
命令找不到 brew install mysql
拒绝访问 root sudo mysql 或重置密码
连不上本地服务 brew services start mysql
端口被占用 lsof -i :3306
忘了密码 mysql.server stopmysqld_safe --skip-grant-tables

总结

  1. 安装 MySQL 首选 Homebrew,升级和管理都方便
  2. 遇到版本不一致,先 which -a mysql 看看是不是装了多个
  3. 系统偏好面板和 Homebrew 不兼容,选一个就好
  4. 日常用 brew services 管理 MySQL 足够了

希望这篇记录能帮你少踩一些坑 🎉


环境:macOS 14.8 + Homebrew + MySQL 9.7.1