macOS通过Homebrew安装MySQL5.7.22后执行mysql_secure_installation报错
解决MySQL 5.7.22运行
mysql_secure_installation时的插件加载错误 这个错误其实挺反常的——因为caching_sha2_password是MySQL 8.0才引入的认证插件,你的5.7.22版本根本就没有这个文件,所以问题的核心肯定是系统里有版本冲突或者配置残留,导致命令错误地调用了8.0版本的逻辑。下面是一步步的解决办法:
1. 先确认当前使用的MySQL版本和路径
首先得搞清楚你调用的mysql和mysql_secure_installation是不是来自刚装的5.7.22:
# 查看mysql命令的路径 which mysql # 查看版本 mysql --version # 查看mysql_secure_installation的路径 which mysql_secure_installation
正常输出应该是/usr/local/Cellar/mysql/5.7.22/bin/下的文件,版本显示5.7.22。如果不是,说明你的环境变量里有旧版本(比如之前装过的8.0)的路径,优先被调用了。
2. 强制指定5.7版本的工具执行
如果发现路径不对,直接用完整路径运行mysql_secure_installation,绕开环境变量的干扰:
/usr/local/Cellar/mysql/5.7.22/bin/mysql_secure_installation
这一步大概率能直接解决问题,因为你明确指定了用5.7版本的工具,它不会去寻找只有8.0才有的插件。
3. 检查并修正MySQL配置文件
如果上面的方法还是不行,检查你的MySQL配置文件(通常是/usr/local/etc/my.cnf或者~/.my.cnf),确保没有错误的配置项:
打开配置文件,添加或修改以下内容:
[mysqld] default_authentication_plugin=mysql_native_password
保存后重启MySQL服务:
brew services restart mysql
然后再重新运行mysql_secure_installation。
4. 彻底清理残留后重装(终极方案)
如果之前装过MySQL 8.0或者有残留文件,可能需要彻底清理后重新安装:
# 卸载当前的mysql brew uninstall mysql # 删除配置文件和数据目录 rm -rf /usr/local/etc/my.cnf rm -rf ~/.mysql_history rm -rf /usr/local/var/mysql # 重新安装5.7.22版本 brew install mysql@5.7.22 # 强制链接到系统路径 brew link mysql@5.7.22 --force
安装完成后再运行mysql_secure_installation,应该就能正常执行了。
内容的提问来源于stack exchange,提问作者Faheem Hassan Zunjani
相关产品推荐
相关产品推荐

