mysql命令报command not found是PATH未配置所致,需手动添加/opt/homebrew/opt/mysql@8.0/bin(Apple Silicon)或/usr/local/opt/mysql@8.0/bin(Intel)至~/.zshrc并source;连不上root则因默认caching_sha2_password插件不兼容且root密码未初始化,应先sudo mysql -u root切换插件并设强密码,再用127.0.0.1而非localhost连接。

装完 mysql@8.0 后 mysql 命令报 command not found,不是没装好,是 PATH 没配;连不上 root 也不是密码错了,大概率是认证插件不兼容或根本没设密码。
mysql 命令找不到?PATH 没加对路径
Homebrew 把 mysql@8.0 标记为 keg-only,不会自动 symlink 到 /opt/homebrew/bin。你得手动把它的 bin 目录塞进 shell 的 PATH。
- Apple Silicon(M 系列)路径固定是:
/opt/homebrew/opt/mysql@8.0/bin - Intel Mac 路径是:
/usr/local/opt/mysql@8.0/bin - 不确定芯片类型?运行
arch,输出arm64就是 Apple Silicon - 加完别忘了
source ~/.zshrc,否则改了等于没改 - 验证方式:执行
mysql --version,必须输出mysql Ver 8.0.x,不是 9.x,也不能报错
mysql -u root -p 死活连不上?先绕过插件再设密码
MySQL 8.0 默认用 caching_sha2_password 插件,而本地多数客户端(包括终端、Sequel Ace、TablePlus)默认不支持它。更麻烦的是,Homebrew 安装后 root 是空密码 + 这个插件组合,直接 -p 必然失败。
- 先确保服务已启动:
brew services start mysql@8.0,再用brew services list确认状态是started - 免密进库:执行
sudo mysql -u root(注意是sudo,不是普通用户) - 进去立刻执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPass123!'; - 执行
FLUSH PRIVILEGES;刷新权限 - 退出后重试:
mysql -u root -p,输入刚设的密码
mysql_secure_installation 卡住或报 Access denied?说明 root 还没初始化
这个脚本不接受空密码,也不帮你切认证插件,它只做“加固”,不做“初始化”。很多人一上来就跑它,结果卡在第一步。
- 必须先按上一节手动设好密码并切插件,
mysql_secure_installation才能继续 - 如果提示
Access denied for user 'root'@'localhost',说明服务起来了但凭证没初始化 —— 此时不能硬等,得回去用sudo mysql -u root补操作 - 它要求强密码(至少 8 位,含大小写+数字+符号),若想跳过校验,第一步输
n,后面再手动改简单密码 - 日志查错位置:
tail -n 20 /opt/homebrew/var/mysql/*.err
客户端连 localhost 还是 127.0.0.1?优先选后者
看似一样,实际行为完全不同:localhost 触发 Unix socket 连接,但 Homebrew 安装的 socket 文件路径(比如 /opt/homebrew/var/mysql/mysql.sock)和客户端默认预期可能不一致;127.0.0.1 强制走 TCP,绕过 socket 路径问题,成功率高得多。
- 命令行连接用:
mysql -h 127.0.0.1 -u root -p - GUI 工具(如 Sequel Ace、TablePlus、DBeaver)务必关掉 “Use socket” 或类似选项
- 如果要用
localhost,得在my.cnf里显式指定 socket 路径,不如直接换127.0.0.1省事
最容易被忽略的是:你可能同时装了 MySQL 9.x,mysql@8.0 和 mysql(9.x)共存时,PATH 顺序决定谁生效;如果之后又装了其他版本,记得检查 which mysql 输出是否真指向 8.0 的路径。


















