macOS通过Homebrew快速安装MySQL方法
在 macOS 上安装 MySQL,使用 Homebrew 通常只需要几条命令:确认 Homebrew 可用,选择需要的 MySQL 版本,执行 brew install,再通过 brew services 启动数据库服务。安装完成后,还需要验证服务状态,并根据实际用途设置 root 密码。
需要特别注意的是,brew install mysql 安装的是 Homebrew 当前维护的主版本,并不表示固定安装 MySQL 8.0 或 8.4。如果项目明确要求 MySQL 8.4,应直接安装 mysql@8.4,不要默认认为无版本号的 mysql 就是 8.x。
一、先确认Homebrew是否已经安装
打开 macOS 的“终端”应用,或者使用 iTerm2 等终端工具,执行:
brew --version
如果已经安装 Homebrew,会看到版本信息。示例输出:
Homebrew 5.x.x
以上只是示例,实际版本以当前机器为准。
如果提示:
zsh: command not found: brew
说明当前终端找不到 Homebrew。可能是真的没有安装,也可能已经安装但没有把 Homebrew 加入环境变量。
没有Homebrew时先安装
Homebrew 官方支持的安装环境需要准备 Xcode Command Line Tools。可以先执行:
xcode-select --install
然后使用 Homebrew 官方安装脚本:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程中终端会显示即将执行的操作,并可能要求输入当前 macOS 用户密码。
Homebrew 在不同 Mac 上的默认目录不同:
| Mac 类型 | Homebrew 默认目录 |
|---|---|
| Apple Silicon,例如 M1、M2、M3、M4、M5 | /opt/homebrew |
| Intel Mac | /usr/local |
Homebrew 安装结束时通常会直接给出需要追加到 Shell 配置文件中的命令。应该优先执行安装程序实际显示的命令。
例如 Apple Silicon Mac 常见的是:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Intel Mac 对应的 Homebrew 通常位于 /usr/local:
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/usr/local/bin/brew shellenv)"
配置后重新检查:
brew --version
brew --prefix
二、安装前先决定使用哪个MySQL版本
如果只是本地学习、开发一个新项目,而且项目没有规定 MySQL 大版本,可以先查看 Homebrew 当前提供的版本:
brew info mysql
也可以搜索可用的 MySQL 配方:
brew search mysql
这里有一个容易产生误解的地方:无版本号的 mysql 代表 Homebrew 当前的主配方,会随着 Homebrew 更新而升级,并不是“永远等于 MySQL 8.0”。截至本文核对时,Homebrew 还单独提供 mysql@8.4 等版本化配方,而 mysql@8.0 已被 Homebrew 标记为 deprecated。
mysql@8.4。如果没有指定版本,只希望安装 Homebrew 当前稳定主版本,可以使用 mysql。
下面分别介绍两种安装方式。
三、安装Homebrew当前主版本MySQL
希望直接使用 Homebrew 当前维护的 MySQL 主配方时,在终端执行:
brew install mysql
Homebrew 会自动处理 MySQL 需要的依赖。安装完成后,可以检查:
brew info mysql
mysql --version
如果 mysql --version 能正常显示版本号,说明 MySQL 命令行程序已经可以使用。
这里不建议在教程中把某个具体版本号写死作为验证依据,因为 brew install mysql 对应的稳定版本会继续变化。判断是否安装成功,应该看命令能否正常执行,以及 brew info mysql 显示的实际版本。
四、启动MySQL服务
安装程序和数据库服务是两回事。执行完 brew install mysql 后,还需要启动 MySQL Server:
brew services start mysql
brew services start 会立即启动 MySQL,并把它注册为当前用户登录后的后台服务。
查看服务状态:
brew services list
正常情况下,可以在 MySQL 对应的一行看到 started 状态。
示例:
Name Status
mysql started
实际输出还会包含用户和服务文件等信息,不同 Homebrew 版本的显示形式可能稍有区别。
几个常用的服务管理命令
# 启动,并注册为登录后自动启动
brew services start mysql
# 重启
brew services restart mysql
# 停止
brew services stop mysql
# 查看状态
brew services list
如果只想临时运行服务,而不希望注册为登录后自动启动,可以使用:
brew services run mysql
Homebrew 的 services 功能在 macOS 上通过系统的 launchctl 管理后台服务。一般的个人开发环境直接使用普通用户执行即可,没有必要为了启动 MySQL 给命令加 sudo。
五、首次登录MySQL
Homebrew 当前 MySQL 配方的安装说明指出,新初始化的数据库允许本机使用 root 用户登录,并建议随后运行 mysql_secure_installation 完成安全配置。
服务启动以后,可以先执行:
mysql -u root
如果登录成功,会进入类似下面的 MySQL 命令行环境:
mysql>
此时可以查询实际运行的 MySQL 版本:
SELECT VERSION();
也可以查看数据库:
SHOW DATABASES;
退出 MySQL:
EXIT;
能完成这一步,说明 MySQL Server 已经真正启动,而且本地客户端能够连接。
再检查一次服务器是否存活
在还没有设置 root 密码时,也可以执行:
mysqladmin -u root ping
示例结果:
mysqld is alive
如果后面已经给 root 设置了密码,则改用:
mysqladmin -u root -p ping
终端会提示输入密码。
六、给root设置密码并进行基础安全配置
仅用于自己电脑上的临时测试环境,可以先完成登录验证再配置密码。但如果数据库会长期使用,建议运行 MySQL 自带的安全配置工具:
mysql_secure_installation
这个程序会通过交互方式完成安全设置,其中可能包括设置 root 密码、处理匿名账户、测试数据库以及远程 root 登录等项目。具体提示会随着 MySQL 版本变化,因此没有必要照抄某个旧教程中的每一行提示。
处理时可以遵循一个简单原则:
- 为 root 设置一个自己能够妥善保存的密码;
- 普通本地开发没有匿名账户需求时,可以移除匿名账户;
- 没有远程 root 登录需求时,不开放 root 远程访问;
- 测试数据库没有用途时可以删除。
设置密码以后再次登录,需要使用:
mysql -u root -p
看到:
Enter password:
后输入刚才设置的密码即可。终端输入密码时不会显示星号或字符,这是正常现象。
七、项目需要MySQL 8.4时怎么安装
如果项目明确要求 MySQL 8.4,不要执行普通的 brew install mysql,而是安装版本化配方:
brew install mysql@8.4
启动服务时,名称也要对应:
brew services start mysql@8.4
查看:
brew services list
版本化 Homebrew 配方通常属于 keg-only,也就是它不会像默认主版本那样自动链接到 Homebrew 的公共命令目录。因此安装以后直接运行:
mysql --version
有可能仍然提示找不到 mysql,或者调用到机器上另一套 MySQL 客户端。
这种情况下,可以把 MySQL 8.4 的 bin 目录加入当前用户的 PATH:
echo 'export PATH="$(brew --prefix mysql@8.4)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
然后确认:
which mysql
mysql --version
也可以直接查看 Homebrew 为它分配的路径:
brew --prefix mysql@8.4
mysql@8.4 时,安装、启动和停止命令都尽量保持版本名称一致,例如
brew services start mysql@8.4 和
brew services stop mysql@8.4,避免和无版本号的 mysql 配方混淆。
八、安装完成后做一次完整验证
如果安装的是普通的 mysql 配方,可以按下面的顺序检查:
# 1. 查看MySQL客户端版本
mysql --version
# 2. 查看Homebrew服务
brew services list
# 3. 测试数据库连接
mysql -u root
# 如果已经设置root密码
mysql -u root -p
进入 MySQL 后,可以建立一个临时数据库验证写入功能:
CREATE DATABASE brew_test CHARACTER SET utf8mb4;
SHOW DATABASES;
DROP DATABASE brew_test;
这里的 brew_test 只是用于验证的临时数据库。能够成功创建、查看并删除,说明本地 MySQL 的基本读写功能正常。
九、常见问题处理
1. brew命令找不到
先检查两个常见路径:
ls /opt/homebrew/bin/brew
ls /usr/local/bin/brew
Apple Silicon Mac 通常使用 /opt/homebrew,Intel Mac 通常使用 /usr/local。如果文件存在,问题多半是 Shell 环境变量没有加载。
还可以检查:
arch
command -v brew
brew --prefix
Apple Silicon 原生终端一般应看到 arm64,并使用 /opt/homebrew 下的 Homebrew。如果一台 Apple Silicon Mac 同时存在 /usr/local 和 /opt/homebrew 两套 Homebrew,需要确认当前终端到底调用的是哪一套。
2. mysql命令找不到
先确认到底安装了哪个配方:
brew list --formula | grep mysql
如果显示的是:
mysql@8.4
那么通常需要按照前面的方式把它的 bin 目录加入 PATH:
echo 'export PATH="$(brew --prefix mysql@8.4)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
3. 提示Can't connect to local MySQL server
这类错误最常见的原因不是客户端没有安装,而是 MySQL Server 没有运行。先检查:
brew services list
如果 MySQL 没有处于 started 状态,启动它:
brew services start mysql
或者重启:
brew services restart mysql
再尝试:
mysql -u root
如果安装的是 8.4,要把服务名称换成:
brew services restart mysql@8.4
4. MySQL服务启动后马上停止
先查看 Homebrew 服务状态:
brew services list
然后查看配方本身给出的提示:
brew info mysql
Homebrew 的 MySQL 配方特别提示:系统中遗留的 /etc/my.cnf 或 /etc/mysql/my.cnf 可能干扰 Homebrew 安装的 MySQL 启动。
可以先检查是否存在这些配置:
ls -l /etc/my.cnf
ls -l /etc/mysql/my.cnf
不要看到文件就直接删除。旧配置中可能保存端口、字符集、数据目录等重要设置,应该先查看内容,确认它是不是以前安装 MySQL、MariaDB 或其他数据库时遗留的配置。
5. 机器上以前装过MariaDB或Percona Server
Homebrew 的 MySQL 配方与 MariaDB、Percona Server 会安装部分同名程序,因此存在冲突。可以先确认当前环境:
brew list --formula | grep -E 'mysql|mariadb|percona'
brew services list
如果机器原本存在重要数据库,不要为了安装 MySQL 直接卸载其他数据库,更不要直接删除数据目录。先确认旧数据库的数据位置并做好备份,然后再决定迁移、停用还是保留。
6. 从很旧的MySQL直接升级到当前主版本
这和全新安装不是同一个问题。如果机器中原本存在 MySQL 数据,尤其是旧于 MySQL 8.4 的版本,不应该简单执行 brew upgrade 后直接尝试使用新版本打开原数据目录。
Homebrew 当前 MySQL 配方明确提示,从 MySQL 8.4 之前的版本升级到 9.0 之后的版本,需要先经过 MySQL 8.4。对于包含真实业务数据的环境,还应在升级前完成数据库备份,并根据对应 MySQL 版本的官方升级说明检查兼容性。
十、MySQL安装到哪里了
使用 Homebrew 时,不建议把所有路径写死成 /usr/local 或 /opt/homebrew。最方便的办法是让 Homebrew 自己返回当前前缀:
brew --prefix
查看 MySQL 配方目录:
brew --prefix mysql
普通 Homebrew MySQL 的数据库数据通常位于 Homebrew 前缀下面的 var/mysql。可以这样查看:
ls "$(brew --prefix)/var/mysql"
这条命令比把路径直接写成 /opt/homebrew/var/mysql 更适合同时兼容 Apple Silicon 和 Intel Mac。
数据目录和 MySQL 软件本身并不是一回事。以后执行 brew uninstall mysql 时,也不要因为想“卸载干净”就顺手删除 var/mysql。其中可能保存着实际数据库文件。
十一、如果以后需要停止或卸载MySQL
停止普通 MySQL 服务:
brew services stop mysql
卸载:
brew uninstall mysql
如果安装的是 MySQL 8.4:
brew services stop mysql@8.4
brew uninstall mysql@8.4
在删除任何数据目录之前,先检查:
ls "$(brew --prefix)/var/mysql"
只要里面存在需要保留的数据库,就应该先通过 mysqldump 等方式备份,而不是直接删除目录。
十二、最简安装命令整理
如果 Homebrew 已经配置完成,并且希望安装 Homebrew 当前维护的 MySQL 主版本,整个过程可以压缩为:
brew update
brew install mysql
brew services start mysql
mysql --version
brew services list
mysql -u root
确认能够登录以后,再运行:
mysql_secure_installation
以后登录:
mysql -u root -p
如果项目要求 MySQL 8.4,则对应命令为:
brew install mysql@8.4
brew services start mysql@8.4
echo 'export PATH="$(brew --prefix mysql@8.4)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
mysql --version
mysql -u root
因此,macOS 通过 Homebrew 安装 MySQL 真正需要注意的并不是 brew install 这一条命令本身,而是安装之前确定版本、安装之后启动服务,并确认客户端实际连接到了刚安装的 MySQL。把这几个环节分开检查,绝大多数安装问题都能很快定位。
本文涉及的 Homebrew 安装目录、brew services 行为、MySQL 配方名称、版本化配方以及 mysql_secure_installation 用途,依据本文编写时的 Homebrew 官方文档、Homebrew Formulae 和 MySQL 官方参考手册核对。Homebrew 的可用 MySQL 版本会随时间变化,实际安装前可使用 brew info mysql、brew info mysql@8.4 和 brew search mysql 查看当前状态。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









