虚拟机数据库改密码ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘

注:原因为MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_sha2_password),对此,我们将mysql用户使用的  登录密码加密规则  还原成  mysql_native_password,即可登陆成功。

mac上用homebrew安装mysql步骤:

1.brew install mysql(默认安装mysql8)

安装完成后:启动mysql服务

2.bash mysql.server start

这个时候用navicat 连接会报错2059 Authentication plugin 'caching_sha2_password' cannot be loaded

这是因为新版mysql数据库的加密方式变了:

3.登录数据库 mysql -u root -p

mysql> use mysql;

4.通过命令 select user,plugin from user where user='root'; 我们可以发现加密方式是caching_sha2_password 

虚拟机数据库改密码ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘_第1张图片 

5.mysql> select user,host from user; 

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| admin            | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| zhangj           | localhost |
+------------------+-----------+
注意我的root,host是'%' 

6.然后使用命令:alter user 'root'@'%' identified with mysql_native_password by 'your password';

执行这个语句时如果报错“ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'”,就执行第6步,如果没报错就走第7步

7.保留当前窗口,新打开一个窗口,重新进入mysql,执行该命令就可以了

再次查看,就发现加密方式已经更改:
虚拟机数据库改密码ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘_第2张图片

8.接着找到my.cnf文件(不知道目录的可以通过brew list mysql来确定目录)并加上加密方式: 

default_authentication_plugin=mysql_native_password

虚拟机数据库改密码ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘_第3张图片 

9.保存后,重启mysql服务命令:mysql.server restart

 

 

你可能感兴趣的:(Linux,数据库,mysql,java)