Navicat连接mysql数据库时,总显示以下错误提示,但是在本机电脑控制台的mysql连接却正常显示。
通过研究,发现MySQL8.0之前的版本密码加密规则(mysql_native_password)和MySQL8.0密码加密规则(caching_sha2_password)不一样,但Navicat for mysql只支持旧的加密方式。
因此修改加密规则,但在此之前由于表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问,因此需要将localhost改为通配符%
具体操作步骤:
1、查看mysql版本,是8.0之前的还是以后的:mysql --version
2、登陆mysql:mysql -u root -p
3、输入mysql密码
4、修改加密规则:
ALTER USER 'root'@'%' IDENTIFIED BY 'mysql密码' PASSWORD EXPIRE NEVER;
5、更新root密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql密码';
6、刷新权限:FLUSH PRIVILEGES;
重新连接数据库即可;