背景
博主使用mac+docker安装了一套php开发环境(nginx+mysql+php),最近更新了mysql,突然发现navicat远程连接mysql报错:
2059:Authentication plugin 'caching_sha2_password' cannot be loaded
网上一堆卸载和重装的解决方案,呵呵。
原因
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种:
- 升级navicat驱动
- mysql用户登录密码加密规则还原成mysql_native_password
解决
博主用的是TNT版的navicat(俗尘破解版),升级驱动是不可能的,所以采取了还原加密规则这个办法
docker 进入mysql容器,执行如下命令即可:
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';