在使用SQLyog第三方数据库可视化软件连接MySQL8.0的时候,出现了以下报错信息。

在这里插入图片描述

一、情景复现

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_TCP_ADDRESS=0.0.0.0 -p 3306:3306 -d mysql:8.0

使用docker快速启动一个mysql8.0版本的数据库。通过SQLyog进行远程数据库连接即可复现。
如果你的SQLyog版本比较新,可能不会存在该问题。

二、解决办法

首先,通过命令行工具登录到MySQL

在这里插入图片描述

然后指定使用mysql_native_password插件来验证用户的密码。

1、本地连接方法

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

2、远程连接方法

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

注意:123456是你的数据库密码。

在这里插入图片描述

然后就不会报错了。

三、原因分析

MySQL 8.0之前的版本默认使用mysql_native_password作为加密规则,而MySQL 8.0及之后版本则默认使用caching_sha2_password。除了上述解决办法以外,你还可以通过更新SQLyog至最新版本,也可以解决该问题。

Logo

一站式 AI 云服务平台

更多推荐