问题背景
使用 navicat客户端连接安装于Windows上
的MySQL 8.0.22 server,连接不了。
问题原因
从报错来看,就是这个版本的MySQL的加密方式变化,导致我现在的客户端不支持现在的授权协议。
解决方法
- 命令行连接数据库,执行以下命令:
mysql -uroot -p
- 修改密码过期,执行以下命令:
说明:BY 后面的单引号里是root密码,我这里没有设置密码,故只有单引号。
ALTER USER 'root'@'localhost' IDENTIFIED BY '' PASSWORD EXPIRE NEVER;
- 更改root密码,执行以下命令:
说明:password替换为你想设置的密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
- 设置生效。
FLUSH PRIVILEGES;
结果
再次尝试连接数据库,就可以连接了。
发表回复