出现这个错误是因为mysql8.0中默认的身份认证插件改了,之前是 mysql_navtive_password,现在改成了 caching_sha2_password。
解决方法:
如果你是本地连接就在mysql命令行输入以下命令(password是你的数据库密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
如果你是远程连接服务器的mysql那就输入下面这行命令,首先你数据库user表必须host字段必须有%这个数据
+-----------+------+
| Host | User |
+-----------+------+
| % | root |
| localhost | root |
+-----------+------+
如果不是,可以使用这个命令修改:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
修改完成后,可以使用这个命令,进行更新
FLUSH PRIVILEGES;
更新完成后,就成功连接了