解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded

news2024/7/7 17:46:27

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded

在这里插入图片描述

OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory”)

错误类似如下:

08:02:58 [INFO] sentry.utils.raven.SentryInternalClient: Not capturing exception due to filters: <class ‘django.db.utils.OperationalError’>
10.244.2.0 - - [13/Jun/2024:08:02:58 +0000] “POST /api/17/store/ HTTP/1.1” 500 337 “-” “sentry.python/0.9.5”
Traceback (most recent call last):
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 128, in dispatch
request, helper, project_id=project_id, origin=origin, *args, **kwargs
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 198, in _dispatch
project = self._get_project_from_id(project_id)
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 96, in _get_project_from_id
return Project.objects.get_from_cache(id=project_id)
File “/usr/local/lib/python2.7/site-packages/sentry/db/models/manager.py”, line 261, in get_from_cache
result = self.get(**kwargs)
File “/usr/local/lib/python2.7/site-packages/django/db/models/manager.py”, line 151, in get
return self.get_queryset().get(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 304, in get
num = len(clone)
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 77, in len
self._fetch_all()
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 857, in _fetch_all
self._result_cache = list(self.iterator())
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 220, in iterator
for row in compiler.results_iter():
File “/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, line 713, in results_iter
for rows in self.execute_sql(MULTI):
File “/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, line 785, in execute_sql
cursor = self.connection.cursor()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 162, in cursor
cursor = util.CursorWrapper(self._cursor(), self)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 132, in _cursor
self.ensure_connection()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 127, in ensure_connection
self.connect()
File “/usr/local/lib/python2.7/site-packages/django/db/utils.py”, line 99, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 127, in ensure_connection
self.connect()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 115, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py”, line 435, in get_new_connection
conn = Database.connect(**conn_params)
File “/usr/local/lib/python2.7/site-packages/MySQLdb/init.py”, line 84, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py”, line 179, in init
super(Connection, self).init(*args, **kwargs2)
OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory”)
08:03:04 [ERROR] sentry: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory”)
Traceback (most recent call last):
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 128, in dispatch
request, helper, project_id=project_id, origin=origin, *args, **kwargs
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 198, in _dispatch
project = self._get_project_from_id(project_id)
File “/usr/local/lib/python2.7/site-packages/sentry/web/api.py”, line 96, in _get_project_from_id
return Project.objects.get_from_cache(id=project_id)
File “/usr/local/lib/python2.7/site-packages/sentry/db/models/manager.py”, line 261, in get_from_cache
result = self.get(**kwargs)
File “/usr/local/lib/python2.7/site-packages/django/db/models/manager.py”, line 151, in get
return self.get_queryset().get(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 304, in get
num = len(clone)
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 77, in len
self._fetch_all()
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 857, in _fetch_all
self._result_cache = list(self.iterator())
File “/usr/local/lib/python2.7/site-packages/django/db/models/query.py”, line 220, in iterator
for row in compiler.results_iter():
File “/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, line 713, in results_iter
for rows in self.execute_sql(MULTI):
File “/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, line 785, in execute_sql
cursor = self.connection.cursor()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 162, in cursor
cursor = util.CursorWrapper(self._cursor(), self)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 132, in _cursor
self.ensure_connection()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 127, in ensure_connection
self.connect()
File “/usr/local/lib/python2.7/site-packages/django/db/utils.py”, line 99, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 127, in ensure_connection
self.connect()
File “/usr/local/lib/python2.7/site-packages/django/db/backends/init.py”, line 115, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py”, line 435, in get_new_connection
conn = Database.connect(**conn_params)
File “/usr/local/lib/python2.7/site-packages/MySQLdb/init.py”, line 84, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py”, line 179, in init
super(Connection, self).init(*args, **kwargs2)
OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory”)
08:03:04 [INFO] sentry.utils.raven.SentryInternalClient: Not capturing exception due to filters: <class ‘django.db.utils.OperationalError’>


排查思路:

可能是创建用户没有指定插件使用了8.0自带的插件,8.0版本的mysql的加密规则是 caching_sha2_password,需要改成 mysql_native_password

解决方案:

1、服务器上mysql版本过低,重新安装8.0版本的mysql再连接即可。

2、更换用户名

3、修改加密规则

1)使用root登录mysql,查看当前账号的加密规则

#查看mysql版本
select @@version;

#查看加密方式
show variables like 'default_authentication_plugin';

#查看用户信息
select host,user,plugin from mysql.user;

在这里插入图片描述

2)修改加密方式(这使用test账号做测试)

alter user 'test'@'%' identified with mysql_native_password by 'password';

在这里插入图片描述

  1. 如果进不去mysql,可以通过修改配置文件:

编辑my.cnf配置文件

vim /etc/my.cnf

在[mysqld]下面加上一行:

default_authentication_plugin=mysql_native_password

这个意思是改变默认加密方式,然后重启 mysql 服务即可。

4)如果进不去mysql,修改配置文件:

编辑my.cnf配置文件

vim /etc/my.cnf 

在[mysqld]下面加上一行:

skip-grant-tables

这个意思是跳过密码验证,然后重启 mysql 服务即可。


# MySQL--Authentication Plugin ‘caching_sha2_password’ Cannot be Loaded

caching_sha2_password插件时MySQL8中默认的插件,所有使用identified with选项创建的用户,都使用该插件。

由于是内嵌的插件,本地client和server会正常工作。

但是远程客户端连接,就有可能遇到以下错误:

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

这个错误并不总是与mysql 客户端的–plugin-dir有关。而通常是意味着你要升级mysql客户端的库文件了。

插件ching_sha2_password最初是在MySQL5.7中引入的。如果你仍然是使用5.6或更早的版本,你就会无法连接到MySQL。

MariaDB不支持caching_sha2_password插件,但是MariaDB Connector/C从3.2开始支持该插件。以单独的库文件形式提供,而不是内嵌的。所有使用MariaDB Connector/C的客户端支持使用caching_sha2_password插件进行认证。

MariaDB libmysqlclient库不支持caching_sha2_password插件。因此,如果你使用libmysqlclient库客户端连接库,你将无法使用caching_sha2_password插件进行身份验证。

使用不同API(例如 Python、PHP、Go、Java 和 ODBC)连接到MySQL的应用程序需要使用最新版本的连接器和数据库驱动程序。MySQL和MariaDB连接器都支持caching_sha2_password插件。

这也适用于 Percona Toolkit。

结论

为了使用caching_sha2_password身份验证插件

1.对于MySQL、Percona Server for MySQL、 Percona XtraDB Cluster,可以使用5.7或者更新的客户端,不需要其它操作,因为是内嵌的。

2.对于MariaDB,使用MariaDB Connector/C 3.0.2或者更新的客户端;如果你的客户端找不到caching_sha2_password.so库文件的位置,使用–pluggin-dir参数指定

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

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

相关文章

虚拟机与主机的联通

本地光纤分配地址给路由器--》连结路由器是连结局域网--》由路由器分配IP地址 因此在网站上搜索的IP与本机的IP是不一样的 1.windows查看主机IP地址 在终端输入 2.linux虚拟机查看ip 3.主机是否联通虚拟机ping加ip

【AI学习】无线AI的问题和挑战

无线AI&#xff0c;即无线人工智能&#xff0c;是指内生于未来&#xff08;6G&#xff09;无线通信系统并通过无线架构、无线数据、无线算法和无线应用所呈现出来的新的人工智能技术体系。 最近一直在进行无线AI的调研&#xff0c;感觉真的是路漫漫其修远兮。业界有一些探索&a…

数学建模------Matlab数据可视化

目录 1.plot函数 &#xff08;1&#xff09;函数介绍 &#xff08;2&#xff09;参数介绍 &#xff08;3&#xff09;图形美化 &#xff08;4&#xff09;背景更改 &#xff08;5&#xff09;多组绘制 &#xff08;6&#xff09;图形叠加 &#xff08;7&#xff09;添加…

Matplotlib 简介

import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ylabel(some numbers) plt.show() 当使用plot只传入单个数组时&#xff0c;matplotlib会认为这是y的值&#xff0c;并自动生成长度相同&#xff0c;但是从0开始的x值&#xff0c;所以这里的x会自动生成为 [0,1,2,…

Vue.js 案例——商品管理

一.需要做出的效果图&#xff1a; 二.实现的步骤 首先&#xff0c;先建一个项目&#xff0c;命名Table&#xff0c;在Table项目中的components里新建一个MyTable.vue文件。 第二步&#xff0c;在原有的 HelloWorld.vue中写入代码。 HelloWorld.vue代码如下&#xff1a; <…

土地规划与文化遗产保护:在发展浪潮中守护历史的脉络

在这个日新月异的时代&#xff0c;城市化进程如火如荼&#xff0c;土地规划作为引导城市发展方向的关键&#xff0c;承载着平衡发展与保护的重任。在追求现代化的同时&#xff0c;保护文化遗产不仅是对过去的尊重&#xff0c;更是对未来负责。本文旨在深入探讨如何在土地规划实…

云桌面运维工程师

一 深信服驻场工程师 1 深信服AC、AF、AD、NGAF、WOC Atrust、WAF项目实施经验者优先考虑。 负责云桌面POC测试 部署和配置&#xff1a;设置云桌面基础设施&#xff0c;包括虚拟化平台、云桌面管理软件和相关组件。确保正确配置网络、存储和安全设置。 用户体验&#xff1…

7.3数据库第一次作业

安装MySQL 1.打开安装包 2.选择自定义安装&#xff08;custom&#xff09;并点击下一步 3.自定义安装路径 4.点击执行 5.执行成功 6.默认选项点击下一步 7.选择新的授权方式并点击下一步 8.配置密码 9.默认配置并点击下一步 10.点击执行&#xff08;Execute&#xff09; 11.执…

bcc python开发示例

文章目录 1. hello_world.py2. hello_fields.py3. sync_timing.py4. disksnoop.py5. hello_perf_output.py6. bitehist.py7. vfsreadlat.py8. urandomread.py9. strlen_count.py10. nodejs_http_server.py11. task_switch.c12. 监视 do_execve 1. hello_world.py from bcc imp…

Ubuntu 24.04-自动安装-Nvidia驱动

教程 但在安全启动模式下可能会报错。 先在Nvidia官网找到GPU对应的驱动版&#xff0c; 1. 在软件与更新中选择合适的驱动 2. ubuntu自动安装驱动 sudo ubuntu-drivers autoinstall显示驱动 ubuntu-drivers devices3. 安装你想要的驱动 sudo apt install nvidia-driver-ve…

React@16.x(48)路由v5.x(13)源码(5)- 实现 Switch

目录 1&#xff0c;原生 Switch 的渲染内容2&#xff0c;实现 1&#xff0c;原生 Switch 的渲染内容 对如下代码来说&#xff1a; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; function News() {return <div className"p…

Qt界面中的子窗口实现鼠标拖动边缘改变大小以及移动(完整demo代码)

目录 效果 拖拽 移动​编辑 实现 DragResizeWgt类.h文件 DragResizeWgt类.cpp文件 使用 testwidget窗口.ui文件 testwidget窗口.h文件 testwidget窗口.cpp文件 参考 效果 想要的效果就是类似于QT IDE中的效果&#xff0c;可以拖动边缘改变大小&#xff0c;用户自身可…

传承与创新,想让认字更简单?就来看《米小圈动画汉字》吧!

汉字&#xff0c;作为中华文化的精髓和根基&#xff0c;自古以来便承载着中华民族的思想与记忆。在现代社会&#xff0c;随着文化多样性的崛起和科技进步的推动&#xff0c;汉字的教育也更加的多元化&#xff0c;《米小圈动画汉字》作为一项全新的教育资源&#xff0c;不仅致力…

WAIC热点聚焦|具身智能简介:AI新浪潮的领跑者

WAIC热点聚焦|具身智能简介&#xff1a;AI新浪潮的领跑者 引言 随着"具身智能"&#xff08;Embodied Intelligence&#xff09;的火热讨论&#xff0c;2024年标志着人机交互新时代的开启。在大模型技术的推动下&#xff0c;机器人响应语音指令成为现实&#xff0c;…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示DS3231 RTC时间

LCD ST7735显示DS3231 RTC时间 文章目录 LCD ST7735显示DS3231 RTC时间1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板 (ESP-12E) 和 DS3231 RTC 模块制作一个简单的数字实时时钟,其中可以使用连接到 NodeMCU 的两个按钮设置时间和日期,并将它们打印(带…

CS算法(二)—— 斜视SAR点目标仿真

SAR成像专栏目录 我们按照Cumming教授所著的《合成孔径雷达成像——算法与实现》7.6节的点目标参数进行仿真,斜视角设置为8,中心斜距改为1000km。先放最终的仿真结果: 1. 参数配置 在中心点和中心的的上下左右方向设置5个点目标 : function para=config_sar_para_cumming(…

unity强力配置插件Luban【Next最新版本】(二)本地化

文章目录 前言一、快速实现静态本地化1、表格格式2、本地化文本3、修改bat文件3、打表 二、多语言切换1、修改bat文件2、增加本地化管理脚本3、测试 总结 前言 无需多言&#xff0c;本地化&#xff08;Localization&#xff0c;简称 L10N&#xff09;是指将产品、内容或服务适…

人工智能在日常生活中的十大应用:从医疗到智能家居

人工智能已成为当今人类日常生活的重要组成部分&#xff0c;无论您是否意识到&#xff0c;它几乎在所有场景中都能提供帮助。每次您进行网络搜索、在线预订旅行、接收来自京东等购物平台的产品推荐又或是打开您的新浪、抖音时&#xff0c;都能看到影子&#xff0c;这些只是一些…

Element中的消息提示组件Message和弹框组件MessageBox

简述&#xff1a;在 Element UI 中&#xff0c;Message和MessageBox都是比较常用的组件&#xff0c;Message用来提示消息&#xff0c;而MessageBox是一个用于创建模态对话框的组件。它可以用于在页面上快速展示信息、警告或错误提示&#xff0c;而不会阻止用户的其他操作。简单…

每日复盘-20240704

今日关注&#xff1a; 20240704 六日涨幅最大: ------1--------300391--------- 长药控股 五日涨幅最大: ------1--------300391--------- 长药控股 四日涨幅最大: ------1--------300391--------- 长药控股 三日涨幅最大: ------1--------300391--------- 长药控股 二日涨幅最…