环境

用 Homebrew 安装 MySQL 后发现第三方工具无法连接,错误信息如下:

Authentication plugin 'caching_sha2_password' cannot be loaded:
dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found

原因是自 MySQL 8.0 版本起,使用 caching_sha2_password 作为默认的验证插件, 而这些客户端还没有兼容

方案一:升级现有客户端

如果新版的客户端支持 caching_sha2_password 则皆大欢喜,不过到今天已经有一阵子了,Sequel Pro 最新版仍然不支持,所以还是去读升级日志。

方案二:换支持的客户端

比如自家的 MySQL Workbench 总归要支持吧,但这句话我不负责。

方案三:初始化数据库

macOS 如果安装了 MySQL Preference Pane,打开,选择 Initialize Database,再选择 Use Legacy Password Encryption ,确认。

「初始化」意味着会初始化。

方案四:mysql_native_password

通过终端把验证方式改为 mysql_native_password

ALTER USER 'username’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

方案五:使用旧版本的 MySQL

以 MySQL 5.7 为例

brew uninstall mysql
brew install mysql@5.7
brew link mysql@5.7 --force

如果有用得称手的那种 Apache + MySQL + PHP… 套装也是一样的

本来就是临时用用,这么一折腾生生绕了一圈,本来要做什么已然忘记了 🤦🏻‍♂️