今天新建一个用户,create user 'test'@'localhost' identified by 'test';
然后给用户授权,grant all on *.* to 'test'@'localhost';
在使用Navicat登录此用户时报错,
很是奇怪,网上搜索后,方知MySQL8之后,用户密码的默认加密方式由mysql_native_password 变为了caching_sha2_password。而我的Navicat版本比较旧,不支持此种新特性的加密方式,可以在数据库中查看加密方式:
果然新创建用户密码的加密方式是caching_sha2_password,问题原因找到,下面就需要解决问题了。
解决方案
执行以下语句将加密方式改过来,OK。
ALTER USER 'test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
再次查看用户表数据
加密方式已改变,现在用Navicat工具登录试试。
完美解决。