Mac 上使用 Homebrew 安装 MySQL 8.4 和 MySQL 5.7 共存

在学习 github 上的一些项目时,不同项目使用的 mysql 版本不一样,下面分享下我是如何在 macOS 上使用 Homebrew 同时安装并运行 MySQL 8.4MySQL 5.7的,包括修改端口避免冲突的步骤。


安装 Homebrew

国内安装homebrewHomebrewCN

安装完成后更新:

sql 复制代码
brew update

搜索可用 MySQL 版本

sql 复制代码
brew search mysql

搜索结果:

perl 复制代码
mysql         # 最新稳定版(8.4)
mysql@8.4     # 8.4 版本
mysql@5.7     # 5.7 版本

我建议安装 mysql8 和 mysql5.7,因为mysql Workspace LTS目前只兼容到 mysql 8.0,但我比较喜欢尝试,所以我下面以 8.4 为例。

安装 MySQL 8.4 和 MySQL 5.7

kotlin 复制代码
brew install mysql@8.4
brew install mysql@5.7

配置端口(避免冲突)

默认情况下,两个 MySQL 实例都会占用 3306 端口,因此需要修改一个版本的端口。

假设我们修改 MySQL 5.7 的端口为 3307

编辑配置文件

使用 vi 或者 sublime 等文本编辑器,使用 UTF-8 编码编辑。

perl 复制代码
vi /usr/local/etc/my.cnf@5.7

[mysqld] 段添加:

ini 复制代码
[mysqld]
port=3307

保存退出(vi 使用:wq,nano 使用Ctrl + O 保存,Ctrl + X 退出)。

如果找不到 my.cnf@5.7,可以自己创建,并确保 MySQL 5.7 启动时读取它。

启动两个版本

perl 复制代码
# 启动 MySQL 8.4(默认 3306)
brew services start mysql@8.4

# 启动 MySQL 5.7(端口 3307)
brew services start mysql@5.7

检查运行状态:

复制代码
brew services list

连接到不同版本

使用命令行连接:

css 复制代码
# MySQL 8.4
mysql -u root -p -P 3306

# MySQL 5.7
mysql -u root -p -P 3307

如果使用图形化工具(如 Mysql Workspace、Navicat),分别设置端口即可。

停止服务

arduino 复制代码
brew services stop mysql@8.4
brew services stop mysql@5.7

数据目录位置

Homebrew 默认会将不同版本的数据目录分开:

kotlin 复制代码
/usr/local/var/mysql@8.4
/usr/local/var/mysql@5.7

请勿共用数据目录,否则会导致数据损坏。

总结

通过 Homebrew 安装并配置端口,我们可以在一台 Mac 上同时运行多个 MySQL 版本。

这种方式适合需要在同一台机器上测试不同版本兼容性的开发场景。

另外也可以使用 Docker 来同时运行多个 Mysql,但 Docker 要预留磁盘空间,我的 500G 的硬盘不够用,所以我没有使用Docker 来处理这种情况。

相关推荐
Moment35 分钟前
Vibe Coding 时代,到底该选什么样的工具来提升效率❓❓❓
前端·后端·github
Victor35640 分钟前
MongoDB(27)什么是文本索引?
后端
可夫小子2 小时前
OpenClaw基础-3-telegram机器人配置与加入群聊
后端
IT_陈寒2 小时前
SpringBoot性能飙升200%?这5个隐藏配置你必须知道!
前端·人工智能·后端
小时前端3 小时前
React性能优化的完整方法论,附赠大厂面试通关技巧
前端·react.js
Nicko3 小时前
Jetpack Compose BOM 2026.02.01 解读与升级指南
前端
aiopencode3 小时前
使用 Ipa Guard 命令行版本将 IPA 混淆接入自动化流程
后端·ios
小蜜蜂dry3 小时前
nestjs学习 - 控制器、提供者、模块
前端·node.js·nestjs
优秀稳妥的JiaJi3 小时前
基于腾讯地图实现电子围栏绘制与校验
前端·vue.js·前端框架
掘金者阿豪3 小时前
Kavita+cpolar 打造随身数字书房,让资源不再混乱,通勤 、出差都能随心读。
后端