暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL:Client does not support authentication protocol 2

传输过程数值模拟学习笔记 2021-09-05
319

原文:

https://blog.csdn.net/qq_38455201/article/details/83024357

   MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。


一:MySQL的安装

    在windows下面,点击mysql下载链接(https://dev.mysql.com/downloads/windows/),

    去下载页面下载,下载页有安装包和解压包两种,随便下载哪种都可以。

   下载完之后,安装包选择安装,安装过程当中会设置初始的一些账户名称和密码,要记住。解压包就解压在你想解压的文件夹下面就可以了。现在文件夹下面一般是没有data目录(一个空的目录结构)和my.ini文件的,所以这就需要自己新建。

   其中,my.ini文件内容比较简单,如下:

[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 8.0
datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
port = 3306
character-set-server=utf8
#忘记密码时使用
#skip-grant-tables
#设置协议认证方式(重点啊)
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8

 二:设置MySQL的环境变量

   这个都比较简单,在win10界面左下角查询框当中去查询"高级系统设置",然后弹出下面这个界面

     设置完成之后,编辑Path系统变量:在系统变量里,找到Path变量,点击“编辑”按钮,我们将;%MYSQL_HOME%\bin添加到path变量(一般放在最后面),注意如果前面有还有其他的配置,一定要在前面加上英文的分号(半角)。MYSQL_HOME不是必须的,为了以后mysql重新安装到其他目录下的更改方便,毕竟Path系统变量比较多,修改容易出错,因此也可直接在Path变量中添加:C:\Program Files\MySQL\MySQL Server 8.0\bin

三:出现的一个错误

   在安装完MySQL的时候,我们现在一般都使用Navicat来连接数据库,可惜出现下面的错误:

1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client。

   出现上述问题的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 把mysql用户登录密码加密规则还原成mysql_native_password


   我安装的时候是使用的安装包去安装的,所以新建了几个用户,cmd命令,连接mysql,查询系统当中所有的用户。

1.查看MYSQL数据库中所有用户

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

2.修改加密规则,因为最新版的加密规则好像不一样,安装的过程当中是有提示的。

mysql> ALTER USERroot’@’localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;

3.修改用户的认证规则

mysql> alter user '用户名'@'%' identified with mysql_native_password by '密码';

  例如我的用户名是admin,密码是123456,那么,我修改的规则如下

mysql> alter user 'admin'@'%' identified with mysql_native_password by '123456';

  其中还有'用户名'@'%'和'用户名'@'localhost'的区别,一个是任意连接,一个是本地连接。

4.刷新权限

mysql> flush privileges;

5.停止并重启服务

mysql> net stop mysql
mysql> net start mysql

   这里需要注意的是:mysql这个是你的mysql服务的名称,具体名称如何查询呢?假如你的服务名称为MySQL80,那么mysql就得改成MySQL80。



   现在再去用Navicat去连接数据库,就不会出现上述的问题了。

————————————————

版权声明:本文为CSDN博主「梦里梦不出梦里梦的梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/qq_38455201/article/details/83024357


文章转载自传输过程数值模拟学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论