navicat连接数据库,错误*1251*-Client does not support authentication protocol requested by server

问题背景

使用 navicat客户端连接安装于Windows上

的MySQL 8.0.22 server,连接不了。

问题原因

从报错来看,就是这个版本的MySQL的加密方式变化,导致我现在的客户端不支持现在的授权协议。

解决方法

  1. 命令行连接数据库,执行以下命令:
    mysql -uroot -p
    
  2. 修改密码过期,执行以下命令:

    说明:BY 后面的单引号里是root密码,我这里没有设置密码,故只有单引号

    ALTER USER 'root'@'localhost' IDENTIFIED BY '' PASSWORD EXPIRE NEVER;   
    
  3. 更改root密码,执行以下命令:

    说明:password替换为你想设置的密码。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    
  4. 设置生效。
    FLUSH PRIVILEGES;
    

结果

再次尝试连接数据库,就可以连接了。

2022年1月15日                                        添加评论

In mysql, navicat

# #

发表回复