Sqlyog 无法连接 8 版本的mysql caching_sha2_password could not be loaded
1.问题背景
近期系统对Mysql 版本进行了升级,由原来的 5.7升至 8版本,在现场使用Sqlyog 作为数据库连接软件时,发现连接失败。
2.问题现象
使用Sqlyog配置完连接信息后点击连接,报错:
3.问题原因
MySQL 8.0中修改了默认的密码加密方式,使用了caching_sha2_password加密方式,对于Sqlyog老版本不支持该方式,从13.0开始支持8.0
navicat 试了15是可以支持的 但navicat 过于笨重,不适宜远程解决问题
4.解决方案
4.1 使用root登录
进入mysql容器
docker exec -it 611a5a50b72f /bin/bash
611a5a50b72f
为mysql 容器ID
mysql -u root -p
输入root用户密码后进入到mysql程序
4.2 切换数据库并更改认证
use mysql;
alter user 'root'@'%' IDENTIFIED WITH mysql_native_password by 'password';
flush privileges;
password 为root用户的认证密码
执行完成后,exit退出mysql程序及容器
4.3 使用sqlyog登录验证
验证更改已生效,登录成功