原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决:我是docker安装的mysql,先执行docker exec -it mysql容器ID /bin/bash进入到容器里面,通过mysql -uroot -p登录到mysql里面,然后执行如下指令即可:
1、ALTER USER 'root'@'%' IDENTIFIED BY '你要设置的mysql密码' PASSWORD EXPIRE NEVER;
2、ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你要设置的mysql密码';
3、FLUSH PRIVILEGES;
执行完即可连接成功了,亲测有效!