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 stop → mysqld_safe --skip-grant-tables |
总结
- 安装 MySQL 首选 Homebrew,升级和管理都方便
- 遇到版本不一致,先
which -a mysql看看是不是装了多个 - 系统偏好面板和 Homebrew 不兼容,选一个就好
- 日常用
brew services管理 MySQL 足够了
希望这篇记录能帮你少踩一些坑 🎉
环境:macOS 14.8 + Homebrew + MySQL 9.7.1