签到成功

知道了

CNDBA社区CNDBA社区

MySQL 8.0 用户 认证插件(authentication plugin) 改变

2024-07-04 09:35 1296 0 原创 MySQL
作者: dave

在 Mysql 8.0 中如果按照之前的方式创建用户,在远程连接时会报如下错误:

http://www.cndba.cn/dave/article/131561

Last_IO_Error: Error connecting to source ‘dave@192.168.1.1:3308’. This was attempt 4/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.http://www.cndba.cn/dave/article/131561

这里会提示认证插件失败(Authentication plugin)。Authentication plugin是一种软件模块,它实现了一套特定的认证机制,用于验证用户提交的身份信息(如用户名和密码)是否有效。

在 mysql 8.0 中,默认的认证插件是caching_sha2_password,而之前版本是mysql_native_password。

官网的说明链接如下:http://www.cndba.cn/dave/article/131561http://www.cndba.cn/dave/article/131561http://www.cndba.cn/dave/article/131561

https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-passwordhttp://www.cndba.cn/dave/article/131561http://www.cndba.cn/dave/article/131561http://www.cndba.cn/dave/article/131561http://www.cndba.cn/dave/article/131561

基于安全和性能考虑,mysql 8.0 默认选择了更安全和更好性能的caching_sha2_password插件,default_authentication_plugin变量的默认值从mysql_native_password改成了caching_sha2_password。 在创建用户时如果没有显示指定认证插件,默认就是使用caching_sha2_password。 http://www.cndba.cn/dave/article/131561

mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| dba              | %         | caching_sha2_password | $A$005${Hl8:+-b8h.5|(Vu6egMiBGOpltpZzexotg2x6xylK32mdARk8NaDgBv9j.6 |
| repl             | %         | mysql_native_password | *1E6A16D27xxxxxx8DEFE0BE40A07792A                              |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
O2QaDv:?)b,hG``ZrEducc9Sic.BzJUDjNfrOhqAeYl1rNhhdeE0RTh5jt7 |05$HyC
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
11 rows in set (0.00 sec)

如果使用caching_sha2_password的方式,那么客户端的连接方式也需要对应的修改,具体操作方式查看之前的官网链接。

有两种方法恢复成之前版本的认证插件。

  • 1.修改数据库参数默认值:
    [mysqld] 
    default_authentication_plugin=mysql_native_password
    
    注意这种方式需要重启数据库,也只对新用户生效,对于已经存在的用户,需要先 drop user,在重新创建。
  • 2.创建用户时指定认证插件为:mysql_native_password
    mysql> ALTER USER 'dave'@'%' IDENTIFIED WITH mysql_native_password BY 'www.cndba.cn';
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7966573次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ