因为homebrew将mysql@8.0标记为keg-only,默认不软链接到/opt/homebrew/bin,导致shell找不到命令;apple silicon路径为/opt/homebrew/opt/mysql@8.0/bin,intel为/usr/local/opt/mysql@8.0/bin,需手动添加至~/.zshrc并source生效。

brew install mysql@8.0 装完为什么 mysql 命令找不到?
因为 Homebrew 把 mysql@8.0 标记为 keg-only(备用版本),默认不 symlink 到 /opt/homebrew/bin,所以 shell 找不到 mysql 可执行文件。
Apple Silicon(M 系列芯片)路径是:/opt/homebrew/opt/mysql@8.0/bin;Intel Mac 是:/usr/local/opt/mysql@8.0/bin。不确定芯片类型?运行 arch,输出 arm64 就是 Apple Silicon。
- 加进
~/.zshrc:执行echo 'export PATH="/opt/homebrew/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc - 验证是否生效:
mysql --version应输出mysql Ver 8.0.x,不是 9.x 或报错 - 如果仍报
command not found,检查echo $PATH是否真包含该路径,以及是否漏了source
服务启动后,mysql -u root -p 连不上怎么办?
MySQL 8.0 默认 root 用户无密码,且认证插件是 caching_sha2_password —— 这两个点一起卡住绝大多数人。
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
- 先确保服务已运行:
brew services start mysql@8.0,再用brew services list确认状态是started - 首次连接失败时,别反复输密码,直接用
sudo mysql -u root免密进库(仅限本地) - 进去后立刻执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpass123'; - 退出后重试
mysql -u root -p,输入刚设的密码
mysql_secure_installation 执行失败或卡在密码校验?
它要求强密码(8 位以上,含大小写字母+数字+符号),且必须在服务已启动、root 已有密码的前提下才能走完流程。
- 如果还没设密码,
mysql_secure_installation会提示Access denied for user 'root'@'localhost'—— 这说明服务起来了但没初始化凭证 - 此时不能硬等,得先按上一节手动设密码,再跑
mysql_secure_installation - 想跳过强密码限制?第一步提示时输入
n,之后再用 SQL 手动设简单密码(如123456),开发环境够用 - 注意:该脚本不会改认证插件,所以即使跑完了,客户端连不上还是得手动执行
ALTER USER ... IDENTIFIED WITH mysql_native_password
多个 MySQL 版本共存时,怎么避免端口冲突?
mysql@8.0 和 mysql(比如 9.5)默认都监听 3306,同时启动会冲突。Homebrew 不自动帮你错开端口。
- 只启动一个版本即可:
brew services stop mysql(停 9.x),再brew services start mysql@8.0 - 若真要并行运行,必须手动改配置:编辑
/opt/homebrew/etc/my.cnf(或/usr/local/etc/my.cnf),在[mysqld]下加port = 3307,然后重启服务 - 改端口后,所有连接命令都要显式指定:
mysql -u root -p -P 3307,GUI 工具也要同步调端口 - 注意:
mysql_secure_installation不读自定义配置文件,它始终连3306,所以改了端口就不能直接跑这个脚本
最常被忽略的是认证插件和路径两件事:不改 caching_sha2_password,Python/Node.js 客户端十有八九连不上;不确认芯片架构就硬抄路径,export PATH 写错位置等于白配。










