一、为什么我要写这篇?
最近我在 Mac(Apple Silicon / macOS 15)上用 Homebrew 装 MySQL 时,发现默认已经变成 MySQL 9.5 了:
mysql --version
# mysql Ver 9.5.0 for macos15.7 on arm64 (Homebrew)
但在实际开发中,很多项目仍然依赖 MySQL 8.0,服务器环境也大多是 8.0。
我不想卸载 MySQL 9,只想再装一个 MySQL 8.0 备用。
折腾了一圈,终于走通了一条不冲突、不乱环境、可长期维护的方案,记录下来,希望能帮到你。
二、环境说明
-
macOS 15.x(Sequoia)
-
Apple Silicon(M 系列芯片)
-
Homebrew(arm64)
-
已有 MySQL 9.x(可存在,可不删)
目标:
安装 MySQL 8.0
不影响已有的 MySQL 9
能随时切换使用哪个版本
三、直接安装 MySQL 8.0
Homebrew 提供了 MySQL 8.0 的专用 formula:mysql@8.0。
在终端执行:
brew install mysql@8.0
安装完成后,你会看到一段非常重要的提示(很多人会忽略):
mysql@8.0 is keg-only, which means it was not symlinked into /opt/homebrew
because this is an alternate version of another formula.
这句话的意思是:
MySQL 8.0 被标记为「备用版本」,不会覆盖系统默认的 mysql 命令
这正是我们想要的效果。
四、启动 MySQL 8.0 服务
即使你没有卸载 MySQL 9,也可以单独启动 MySQL 8.0:
brew services start mysql@8.0
查看服务状态:
brew services list
你会看到类似:
mysql@8.0 started homebrew.mxcl.mysql@8.0
说明 MySQL 8.0 已经在后台运行,端口默认仍是 3306(除非你手动改过)。
五、为什么 mysql命令还是找不到?
这时候如果你直接敲:
mysql --version
大概率会看到:
zsh: command not found: mysql
原因很简单:
Homebrew 没有把 mysql@8.0 加入 PATH
需要手动加。
六、配置环境变量(关键步骤)
编辑 ~/.zshrc:
nano ~/.zshrc
在文件末尾加入:
export PATH="/opt/homebrew/opt/mysql@8.0/bin:$PATH"
保存后执行:
source ~/.zshrc
验证:
which mysql
# /opt/homebrew/opt/mysql@8.0/bin/mysql
mysql --version
# mysql Ver 8.0.x for macos15.x on arm64 (Homebrew)

到这里,MySQL 8.0 已经可以在终端中正常使用了。
七、安全初始化(设置 root 密码)
首次使用前,建议运行安全配置脚本:
mysql_secure_installation
常见选项建议:
| 提示 | 建议 |
|---|---|
| 启用密码校验组件 | y |
| 密码策略 | 0(LOW,长度 ≥ 8) |
| 设置 root 密码 | 自己记住的强密码 |
| 移除匿名用户 | y |
| 禁止 root 远程登录 | y |
| 删除 test 库 | y |
| 重载权限表 | y |
完成后,就可以用 root 登录了:
mysql -u root -p
八、如何在不卸载的情况下切换 MySQL 版本?
如果你以后想切回 MySQL 9,只需要调整 PATH 顺序即可。
切换到 MySQL 9(默认)
export PATH="/opt/homebrew/bin:$PATH"
切换回 MySQL 8.0
export PATH="/opt/homebrew/opt/mysql@8.0/bin:$PATH"