学习中遇到的问题之MYSQL出现的一个小问题


文章目录

  • 问题
  • 上述问题的报错
  • 解决方案
  • 步骤
  • 避坑
  • 说明
  • 结尾



问题

我在安装MYSQL 8.0 的版本时候,在安装授权方式页面选择了第一项(MySQL8.0提供的新的授权方式,采用SHA256基础的密码加密方法),这将导致了我无法直接用正常的方式用客户端连接上MySQL服务器,弄了蛮久,终于把这个问题解决了

上述问题的报错

上述问题,我直接使用客户端连接MySQL服务的时候,报了错
SQLyang 和 Navicat 客户端报的错误是:错误2058 plugin
‘caching_sha2_password’ cannot be loaded
dbeaver 客户端报的错误是:Public Key Retrieval is not allowed(
不允许进行公钥检索)
但是这些报的错误,都是使用了MYSQL新的授权方式导致的,MySQL5.x的版本是mysql_native_password加密规则的,MySQL8.x版本是caching_sha2_password加密规则的,所以会导致用客户端无法直接连接上

解决方案

我目前了解到的有两种方案,第一种是升级你的图形界面工具版本(客户端)具体升级到什么版本我也不太清楚,第二种是将MySQL8.x的加密规则还原为5.x的加密规则,我用的是第二种方式解决的问题

步骤

第一步:先用命令行的方式进入你的MySQL数据库或者在所有程序里面查找名为MySQL 8.0 Command Line Client的软件输入数据库密码进入数据库
第二步:运行 USE mysql; 指令(选择数据库)
第三步:运行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '这里填写你的数据库的密码'; 指令(修改root@localhost用户的加密规则和密码)
第四步:运行 FLUSH PRIVILEGES; 指令(刷新权限)
第五步:输入 quit 退出
执行完上述命令之后,再用客户端就可以连接的上MySQL8.x数据库了

避坑

这个问题完全可以在安装MySQL8.x版本的时候规避掉,就是在安装授权方式的界面选择第二项,以传统5.x的加密规则去安装,就可以规避掉这个问题

说明

问题的解决方案有很多种,我这个只是其中一种,如果别的解决方案解决不了这个问题,不妨试试我的

结尾

我是一个从头开始学习的小海滩,希望可以在论坛里面和大家一起共同成长进步,文章写的不好,请多多包涵!