今天换了电脑,装了8.0以上版本的MYSQL,真是困难重重,由于开始没注意,解决的问题也没记,这就说一个Navicat链接问题
这是因为MYSQL的密码为caching_sha2_password
模式,
执行命令:
show variables like 'default_authentication_plugin';
得到
然后我们在看一下全部的,然后执行命令。
select host,user,plugin from mysql.user;
执行完后,按照正常逻辑 就是修改密码,更改密码模式。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
这个时候出现新的错误
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
提示我们没有权限,那么久开放权限
grant system_user on *.* to 'root';
权限赋值成功,
那么就开始修改吧
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
发现新的错误出现
ERROR 4058 (HY000): 1 factor authentication method does not match against authentication policy. Please refer @@authentication_policy system variable.
那么这个时候自己多做了一部操作就是自己创建了一个新的用户
CREATE USER 'koarooot'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';
然后发现创建的新用户密码仍是caching_sha2_password
模式,
那就从新载入表吧
FLUSH PRIVILEGES;
那就查看用户密码加密
SELECT user,authentication_string,plugin,host FROM mysql.user;
发现新建的用户密码仍为$A$005
开头
都建好了,那么试试Navicat发现还是有问题,还是报同样的错误,
那么执行进入呢,发现是可以的。
那这个时候利用另外一种方法修改密码
前面执行后记得退出数据库,从新链接
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
首次修改的时候没有发现有什么不同
,可能就是要修改后退出,从新载入表,再次修改才能成功吧
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
修改成功
重载表
FLUSH PRIVILEGES;
那就查看用户密码加密
SELECT user,authentication_string,plugin,host FROM mysql.user;
发现密码模式已经变了
然后退出
exit
然后链接成功: