Mac 上安装 MySQL 最稳妥方式是用 Homebrew,需注意服务启动、root 密码初始化、认证插件切换为 mysql_native_password、手动创建 my.cnf 配置 socket 路径及端口,再重启服务。

Mac 上装 MySQL 最稳妥的方式是用 Homebrew,跳过官网下载 DMG 或手动配置的麻烦。直接终端几条命令就能跑起来,但有几个关键点不注意,后续连不上、找不到服务、密码失效的问题全会冒出来。
用 Homebrew 安装 MySQL 8.0+
Homebrew 是 Mac 开发环境的事实标准,MySQL 官方也优先适配它。装之前确保已装 Homebrew(没装就先运行 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。
brew install mysql
安装完不会自动启动服务,也不会生成默认 root 密码 —— 这是和旧版本最大的区别。MySQL 8.0+ 默认启用 caching_sha2_password 认证插件,老客户端可能连不上,这点后面会提。
- 启动服务:
brew services start mysql(后台常驻)或mysql.server start(临时) - 确认运行状态:
mysqladmin -u root ping,如果报Access denied,说明 root 密码还没设 - 首次登录必须用
sudo mysql -u root(跳过密码验证),然后立刻改密码
初始化 root 密码并切换认证方式
MySQL 8.0 默认 root 没密码,但强制要求密码强度(至少 8 位,含大小写字母+数字+符号)。更关键的是,默认认证插件 caching_sha2_password 在某些 Python/Node.js 驱动里不被支持,连都会报 Client does not support authentication protocol。
进 MySQL 后执行:
机械设备钢材建材网站是基是一个以PHP+MySQL/Sqlite进行开发的四网合一网站源码。 系统功能特点: 四网合一企业网站管理系统支持在线升级(支持跨版本)、插件在线安装、系统内置严格的过滤体系、可以有效应对安全检测报告。 四网合一:电脑网站、手机站(数据同步、支持绑定域名)、小程序、公众号管理一个后台即可搞定。 双数据库引擎、运行环境全面:同时支持Sqlite
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';
- 必须指定
@'localhost',不能只写'root',否则远程访问权限会混乱 -
mysql_native_password兼容性最好,开发阶段建议用它 - 改完立即执行
FLUSH PRIVILEGES;
配置 my.cnf 避免常见连接失败
Mac 上 MySQL 的配置文件默认不存在,得自己建。Homebrew 安装后会提示配置路径,通常是 /opt/homebrew/etc/my.cnf(Apple Silicon)或 /usr/local/etc/my.cnf(Intel)。不配的话,MySQL 可能用默认 3306 端口,但 socket 路径不对,导致 mysql -u root -p 报 Can't connect to local MySQL server through socket。
创建配置文件,至少包含:
[client] socket = /opt/homebrew/var/mysql/mysql.sock [mysqld] socket = /opt/homebrew/var/mysql/mysql.sock port = 3306
- socket 路径必须和
brew services list显示的路径一致(看 “Plist” 列) - 改完重启服务:
brew services restart mysql - 验证 socket 是否生效:
mysql --socket=/opt/homebrew/var/mysql/mysql.sock -u root -p
连接工具与驱动兼容性提醒
Sequel Ace、TablePlus 这类 GUI 工具一般没问题,但代码里用 pymysql、mysql2(Ruby)、mysqljs/mysql(Node.js)时,得确认是否支持 caching_sha2_password。比如 Node.js 的 mysql2 需要显式加选项:
{
host: 'localhost',
user: 'root',
password: 'xxx',
authPlugin: 'mysql_native_password'
}
- Python 的
pymysql0.10+ 原生支持,但mysql-connector-python有些旧版不行,优先换pymysql - 如果用 Docker 跑应用,别用
host.docker.internal连宿主 MySQL —— Mac 上它不一定通,改用127.0.0.1+ 端口映射更稳
真正卡住人的往往不是装不上,而是 socket 路径、认证插件、配置文件位置这三处没对齐。每次重装前删干净 /opt/homebrew/var/mysql 目录,比硬调权限省事得多。









