MySQL运维实战(6)用户认证插件caching_sha2_password

作者:俊达

用户认证及连接错误解决

MySQL用户认证可以使用几种不同的方式,创建用户时可以制定认证方式:

create user 'username'@'%' identified with auth_plugin by 'password'

auth_plugin:

mysql_native_password
sha256_password
caching_sha2_password

如果创建用户时没有指定auth_plugin,则会根据参数default_authentication_plugin的设置来确定使用哪种认证方式。

mysql> create user 'user1'@'%' identified with 'mysql_native_password' by 'abc123';
Query OK, 0 rows affected (0.02 sec)mysql> create user 'user2'@'%' identified with 'sha256_password' by 'abc123';
Query OK, 0 rows affected (0.02 sec)mysql> create user 'user3'@'%' identified by 'abc123';
Query OK, 0 rows affected (0.02 sec)mysql> select user,host,plugin from mysql.user where user in ('user1','user2','user3');
+-------+------+-----------------------+
| user  | host | plugin                |
+-------+------+-----------------------+
| user1 | %    | mysql_native_password |
| user2 | %    | sha256_password       |
| user3 | %    | caching_sha2_password |
+-------+------+-----------------------+
3 rows in set (0.00 sec)

MySQL 8.0默认使用caching_sha2_password

mysql> show variables like 'default_authentication_plugin';
+------------------------------------------+-----------------------+
| Variable_name                            | Value                 |
+------------------------------------------+-----------------------+
| default_authentication_plugin            | caching_sha2_password |

如果使用caching_sha2_password认证方式,mysql会要求连接开启SSL,或者使用RSA对密码进行加密,否则连接可能会报如下的错误:

# mysql -u user3 -pabc123 -h127.0.0.1 --ssl-mode=DISABLED
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

可以使用几个办法解决这个报错
1、连接开启TLS

mysql -u user3 -pabc123 -h127.0.0.1 --ssl-mode=REQUIRED

2、连接时指定RSA public key
mysql客户端可以通过命令行参数server-public-key-path指定有效的RSA Public Key路径

mysql -u user3 -pabc123 -h127.0.0.1 --ssl-mode=DISABLED --server-public-key-path=/data/mysql01/data/public_key.pem

这里的public key,需要和参数caching_sha2_password_public_key_path指定的key一样。

mysql> show variables like '%public_key_path%';
+--------------------------------------------+----------------+
| Variable_name                              | Value          |
+--------------------------------------------+----------------+
| caching_sha2_password_public_key_path      | public_key.pem |
| group_replication_recovery_public_key_path |                |
| sha256_password_public_key_path            | public_key.pem |
+--------------------------------------------+----------------+
3 rows in set (0.00 sec)

如果使用了错误的public key,连接会报类似下面这样的错:

mysql -u user3 -pabc123 -h172.16.121.237 --ssl-mode=DISABLED --server-public-key-path=/data/mysql01/data/public_key.pemERROR 1045 (28000): Access denied for user 'user3'@'172-16-121-236' (using password: YES)

3、从服务端获取public key
如果本地没有RSA public key,可以在登录时从服务端下载Public Key。相比方法2,这种方法不需要在客户端本地维护public key文件,使用更加简单。但是在登录阶段,需要从服务端下载public key,会消耗一定的时间。

mysql -uuser3 -pabc123 -h 127.0.0.1 --ssl-mode=DISABLED --get-server-public-key

复制账号如果使用了caching_sha2_password认证方式,也有类似的问题和解决方法:开启TLS或者使用RSA Public Key

复制

指定RSA public key文件:

CHANGE REPLICATION SOURCE TO SOURCE_PUBLIC_KEY_PATH = 'key_file_name'

从服务端下载RSA Public Key:

CHANGE REPLICATION SOURCE TO  GET_SOURCE_PUBLIC_KEY = {0|1}

组复制

组复制可以设置参数group_replication_recovery_get_public_key或group_replication_recovery_public_key_path

mysql> show variables like '%group_replication%key%';
+--------------------------------------------+-------+
| Variable_name                              | Value |
+--------------------------------------------+-------+
| group_replication_recovery_get_public_key  | OFF   |
| group_replication_recovery_public_key_path |       |

客户端版本过低

如果客户端版本过低(本例中使用了mysql 5.6.51版本带的mysql客户端) ,可能会报如下错误。解决方法是使用更新版本的客户端。

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded:/usr/local/mysql/lib/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

Cache

登录成功后,服务端会将用户名、密码的hash信息缓存到内存中。下次登录时,如果账号已经被缓存,则不需要再发送密码
清理cache的几种情况:
1、执行flush privileges,会清空所有账号的缓存。
2、修改账号密码时,会清空该账号的缓存。
3、重启服务器。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

横扫Spark之 - 22个常见的转换算子

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 1. map()2. flatMap()3. filter()4. mapPartitions()5. mapPartitionsWithIndex()6. groupBy()7. distinct()8. coalesce()9. repartition()10. sortBy()11. intersection()12.union()13.…

IT行业有哪些证书含金量高呢?

目录 引言: 一、 计算机网络类证书 二、 数据库管理类证书 三、 安全与信息技术管理类证书 四、 编程与开发类证书 五、 数据科学与人工智能类证书 六、结论: 悟已往之不谏,知来者犹可追 …

c#安全-nativeAOT

文章目录 前记AOT测试反序列化Emit 前记 JIT\AOT JIT编译器(Just-in-Time Complier),AOT编译器(Ahead-of-Time Complier)。 AOT测试 首先编译一段普通代码 using System; using System.Runtime.InteropServices; namespace co…

全栈光量子计算系统公司ORCA宣布收购GXC的集成光子学部门

内容来源:量子前哨(ID:Qforepost) 编辑丨慕一 编译/排版丨沛贤 深度好文:1000字丨8分钟阅读 2024年1月30日,全栈光量子计算系统公司ORCA Computing宣布收购总部位于奥斯汀的GXC集成光子学部门。该部门主…

阿里云服务器租用价格表_2024一年_1个月_1小时收费价格表

2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

Flink on k8s之historyServer

1.Flink HistoryServer用途 HistoryServer可以在Flink 作业终止运行(Flink集群关闭)之后,还可以查询已完成作业的统计信息。此外,它对外提供了 REST API,它接受 HTTP 请求并使用 JSON 数据进行响应。Flink 任务停止后&…

探索设计模式的魅力:代理模式揭秘-软件世界的“幕后黑手”

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 引言 一、魔法世界 1.1 定义与核心思想 1.2 静态代理 1.3 动态代理 1.4 虚拟代理 1.5 代理模式结构图 1.6 实例展示如何工作(场景案例) 不使用模式实现 有何问题 使用模式重构示例 二、…

STM32 适合人群

STM32 适合各种需要进行嵌入式系统开发的人群,具体如下: 嵌入式系统工程师:嵌入式系统工程师可以使用 STM32 进行系统设计、硬件和软件编程、测试和部署等工作。学生和研究人员:学生和研究人员可以使用 STM32 进行实验、学习和研…

【Java万花筒】实时洞察与智能分析:构建成熟的Java应用程序监控与日志处理方案

全方位监控与可视化:JMX、Spring Boot Admin和Kibana的强大功能与实践技巧 欢迎订阅专栏:Java万花筒 文章目录 全方位监控与可视化:JMX、Spring Boot Admin和Kibana的强大功能与实践技巧前言1. JMX(Java Management Extensions&a…

SECS/GEM300需要实现哪些内容

GEM300实现设备全自动化,也是金南瓜已经全面支持功能,作为国内首家和最好的300mm标准软件。 GEM300包含E4、E5、E30、E37、E39、E40、E84、E87、E90、E94、E116等 CJob全称Conrtol Job 1. 控制设备作业的控制 2. 包括队列、开始、暂停、继续、完成等等…

STL之stack+queue的使用及其实现

STL之stackqueue的使用及其实现 1. stack,queue的介绍与使用1.1stack的介绍1.2stack的使用1.3queue的介绍1.4queue的使用 2.stack,queue的模拟实现2.1stack的模拟是实现2.2queue的模拟实现 3.总结 所属专栏:C“嘎嘎" 系统学习❤️ &…

SPSS基础操作:对数据按照样本观测值进行排序

在整理数据资料或者查看分析结果时,我们通常希望样本观测值能够按照某一变量的大小进行升序或者降序排列,比如我们想按照学生的学习成绩进行排序,按照销售额的大小对各个便利店进行排序等。以本章附带的数据4为例,如果要按照y4体重…

139. 单词拆分

139. 单词拆分 题目链接&#xff1a;139. 单词拆分 代码如下&#xff1a; //动态规划 //参考leetcode官方题解 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> word(wordDict.begin(),wordDict.end())…

mybatis-plus的批量修改源码遇到的问题

看了下mybatis-plus的批量修改源码&#xff0c;然后就理解了mybatis的一级&#xff0c;二级缓存 1.一级缓存是放在sqlsession中的&#xff0c;他里面有一个map对象&#xff0c;key是et字符串&#xff0c;value就是对象 2.每一个sqlsession都是私有的&#xff0c;不会共享 3.当…

ChatGPT升级至GPT-4 Turbo:性能升级同时更为经济

ChatGPT升级至GPT-4 Turbo&#xff1a;性能升级同时更为经济 随着技术的进步&#xff0c;ChatGPT迎来了其最新的迭代版本——GPT-4 Turbo。这一最新版本不仅在性能上得到了显著提升&#xff0c;而且在成本效益上也更加引人注目。 性能提升 GPT-4 Turbo带来了诸多改进&#x…

Linux探秘之旅:透彻理解路径、命令与系统概念

目录 如何远程连接 远程登录简明指南 linux区别 1.严格区分大小写 2.linux的命令返回结果判断 3.如何查看网络信息 4.关于后缀名&#xff08;Linux不关心文件后缀&#xff09; 4.1 需要记忆的后缀 5.echo命令 6.linux一切皆文件 6.1比如磁盘的文件 6.2可执行文件 …

SpringBoot配置文总结

官网配置手册 官网&#xff1a;https://spring.io/ 选择SpringBoot 选择LEARN 选择 Application Properties 配置MySQL数据库连接 针对Maven而言&#xff0c;会搜索出两个MySQL的连接驱动。 com.mysql mysql-connector-j 比较新&#xff0c;是在mysql mysql-connect…

【微机原理与单片机接口技术】MCS-51单片机的引脚功能介绍

前言 MCS-51是指由美国Intel公司生产的一系列单片机的总称。MCS-51系列单片机型号有很多&#xff0c;按功能分位基本型和增强型两大类&#xff0c;分别称为8051系列单片机和8052系列单片机&#xff0c;两者以芯片型号中的末位数字区分&#xff0c;1为基本型&#xff0c;2为增强…

springboot167基于springboot的医院后台管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)

原文&#xff1a;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十六章&#xff1a;使用 RNN 和注意力进行自然语言处理 当艾伦图灵在 1950 年想象他著名的Turing 测试时&#xff0c;他提出了…