macOS 安装 MySQL 完整教程(Homebrew)
本文记录在 macOS 上用 Homebrew 安装 MySQL 的完整过程,包含国内网络下载失败的解决方法,以及安装后如何启动服务、设置密码。
本机环境:macOS 26.3.1,Homebrew 6.0.12,最终安装版本 MySQL 9.7.1。
一、前置检查
先确认本机是否已安装 MySQL,避免重复安装。
# 检查命令是否存在(为空说明 PATH 里没有)whichmysql mysqld mysql.server# 检查 Homebrew 是否已安装brew list|grep-i-E'mysql|mariadb'# 检查 3306 端口有没有服务在监听lsof-nP-iTCP:3306-sTCP:LISTEN确认 Homebrew 本身可用:
whichbrew&&brew--version二、安装 MySQL
基本命令
brewinstallmysql⚠️ 国内网络常见问题:下载中断
Homebrew 默认从 GitHub 的容器仓库ghcr.io下载预编译包(bottle)。国内访问这个地址经常不稳定,会出现下载到一半断开的错误:
✘ Bottle mysql (9.7.1) Error: Failed to download resource "mysql" curl: (18) Transferred a partial file即使反复重试、开启自动重试,也可能一直卡在同一个大文件上。
✅ 解决方法:使用国内镜像源
设置HOMEBREW_BOTTLE_DOMAIN环境变量,把下载源切换到国内镜像(这里用中科大 USTC),绕开不稳定的ghcr.io:
# 只对当前这次安装生效,不会永久改动系统配置exportHOMEBREW_NO_AUTO_UPDATE=1# 跳过自动更新,减少出错点exportHOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles# 切换镜像源exportHOMEBREW_CURL_RETRIES=8# 下载失败自动重试brewinstallmysql其他可选镜像源:
| 镜像 | BOTTLE_DOMAIN 地址 |
|---|---|
| 中科大 USTC | https://mirrors.ustc.edu.cn/homebrew-bottles |
| 清华 TUNA | https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles |
| 阿里云 | https://mirrors.aliyun.com/homebrew/homebrew-bottles |
💡 提示:如果之前下载失败留下了不完整的缓存文件,重新用镜像源安装时会自动覆盖重下,一般不需要手动清理。
看到类似下面的输出就是装好了:
🍺 /usr/local/Cellar/mysql/9.7.1: 344 files, 304.2MB三、启动服务
安装完成后,MySQL 服务默认不会自动启动,需要手动启动。
# 启动 MySQL,并设置为开机自启brew services start mysql其他常用服务命令:
brew services stop mysql# 停止服务brew services restart mysql# 重启服务brew services list# 查看所有服务状态验证是否启动成功
# 查看服务状态(应显示 started)brew services list|grepmysql# 查看 3306 端口是否在监听lsof-nP-iTCP:3306-sTCP:LISTEN# 测试连接并查看版本mysql-uroot-e"SELECT VERSION();"正常的话会看到端口127.0.0.1:3306 (LISTEN),以及版本号9.7.1。
四、账号与密码
默认账号
Homebrew 安装的 MySQL默认没有 root 密码:
| 项目 | 值 |
|---|---|
| 用户名 | root |
| 密码 | 空(无密码) |
| 允许连接的主机 | 仅localhost/ 127.0.0.1 |
直接连接(回车即可,无需输密码):
mysql-uroot方式一:一键安全加固(推荐)
官方脚本会引导你设置 root 密码、移除匿名用户、禁止 root 远程登录、删除测试库:
mysql_secure_installation按提示操作:
Would you like to setup VALIDATE PASSWORD component?— 是否启用密码强度校验,个人开发可输nNew password:— 输入你的新 root 密码- 后续几个移除匿名用户 / 测试库的问题,一般都输
y
方式二:手动设置 root 密码
先用无密码方式登录:
mysql-uroot在 MySQL 命令行里执行(把你的新密码换成实际密码):
ALTERUSER'root'@'localhost'IDENTIFIEDBY'你的新密码';FLUSHPRIVILEGES;EXIT;设置密码后如何连接
# 会提示你输入密码mysql-uroot-p⚠️ 安全提示:
-p你的密码这种把密码直接写在命令里的方式虽然可行,但密码会留在 shell 历史记录里,不推荐。用-p后交互式输入更安全。
五、创建数据库和普通用户(可选)
生产或项目中不建议直接用 root,最好为每个应用建独立用户:
-- 创建数据库CREATEDATABASEmyappCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 创建用户并授权(仅本地访问)CREATEUSER'appuser'@'localhost'IDENTIFIEDBY'应用密码';GRANTALLPRIVILEGESONmyapp.*TO'appuser'@'localhost';FLUSHPRIVILEGES;六、常用命令速查
| 操作 | 命令 |
|---|---|
| 启动服务 | brew services start mysql |
| 停止服务 | brew services stop mysql |
| 重启服务 | brew services restart mysql |
| 查看状态 | brew services list |
| 连接(无密码) | mysql -u root |
| 连接(有密码) | mysql -u root -p |
| 查看版本 | mysql -u root -e "SELECT VERSION();" |
| 查看所有数据库 | mysql -u root -e "SHOW DATABASES;" |
| 安全加固 | mysql_secure_installation |
七、卸载(如需要)
brew services stop mysql# 先停服务brew uninstall mysql# 卸载rm-rf/usr/local/var/mysql# 删除数据目录(⚠️ 会清空所有数据库数据,谨慎操作)