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 来处理这种情况。

相关推荐
0思必得06 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5167 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino7 小时前
图片、文件的预览
前端·javascript
layman05289 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔9 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李9 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN9 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒9 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库9 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_180079052479 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫