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

解决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.mzph.cn/bicheng/40721.shtml

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

相关文章

启动Nuxt-hub-starter: Failed to initialize wrangler bindings proxy write EOF

重新安装 node.js 这样做可以确保下载到了适合的 Windows 框架、Chocolatey&#xff08;一款Windows包管理工具&#xff09;、Python 等资源。 这个错误与Node版本、pnpm/yarn 的版本无关&#xff01; Node.js — Download Node.js (nodejs.org)

Selenium 监视数据收发

实际上&#xff0c;在我提供的示例中&#xff0c;确实使用了浏览器实例。webdriver.Chrome()这行代码正是创建了一个Chrome浏览器的WebDriver实例。Selenium Wire扩展了标准的Selenium WebDriver&#xff0c;允许你通过这个浏览器实例来监听网络请求。 当你运行类似这样的代码…

汉光联创HGLM2200N黑白激光多功能一体机加粉及常见问题处理

基本参数&#xff1a; 机器型号&#xff1a;HGLM2200N 产品名称&#xff1a;A4黑白激光多功能一体机 基础功能&#xff1a;打印、扫描、复印 打印速度&#xff1a;22页/分钟 纸张输入容量&#xff1a;150-249页 单面支持纸张尺寸&#xff1a;A4、A5、A6 产品尺寸&#x…

MySQL数据恢复(适用于误删后马上发现)

首先解释一下标题&#xff0c;之所以适用于误删后马上发现是因为太久了之后时间和当时操作的数据表可能会记不清楚&#xff0c;不是因为日志丢失 1.首先确保自己的数据库开启了binlog&#xff08;我的是默认开启的我没有配置过&#xff09; 根据这篇博客查看自己的配置和自己…

MS32008N低压 5V 多通道电机驱动器

MS32008N 是一款多通道电机驱动芯片&#xff0c;其中包 含两路步进电机驱动&#xff0c;一路直流电机驱动&#xff1b;每个步 进电机驱动通道的最大工作电流 1.0A &#xff1b;支持两相四 线与四相五线步进电机。 芯片采用可选的 I 2 C 或 SPI 串行总线控制模式&…

安装 Mamba、Conv1d 时报错 “bare_metal_version“

报错详情1&#xff08;pip install mamba/causal_conv1d&#xff09;&#xff1a; Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-error python setup.py egg_info did not run successfully.│ exit code: 1╰─> [13 lines of output]/tmp/pip-…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs

一、自定义组件 1、自定义组件 自定义组件&#xff0c;最基础的结构如下&#xff1a; Component struct Header {build() {} } 提取头部标题部分的代码&#xff0c;写成自定义组件。 1、新建ArkTs文件&#xff0c;把Header内容写好。 2、在需要用到的地方&#xff0c;导入…

centos7 安装mysql8.0.34

在 CentOS 7 上安装 MySQL 8.0.34 的步骤如下&#xff1a; 1. 卸载 MariaDB&#xff08;如果已安装&#xff09; CentOS 7 默认使用 MariaDB 作为数据库管理系统&#xff0c;因此在安装 MySQL 之前需要卸载 MariaDB。 rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5…

Linux 摄像头编号固化

一、前言 在工业领域&#xff0c;一台设备会有很多个摄像头&#xff0c;可以使用命令&#xff1a;ll /dev/video* 进行查看&#xff1b; 在代码中&#xff0c;如果需要使用摄像头&#xff0c;那么都是需要具体到哪个摄像头编号的&#xff0c;例如 open("/dev/video4"…

[Day 24] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在自動駕駛中的應用 1. 簡介 自動駕駛技術是現代交通領域的一個革命性進展。通過結合人工智能&#xff08;AI&#xff09;、機器學習&#xff08;ML&#xff09;、深度學習&#xff08;DL&#xff09;和傳感器技術&#xff0c;自動駕駛汽車可以在無人干預的情況下安全駕駛。…

线段树求区间最值问题

引言 今天主要还是练了两道题&#xff0c;是有关线段树如何去求一个区间内的最值问题的&#xff0c;我们可以用线段树来解决。 对应一个无法改变顺序的数组&#xff0c;我们想要去求一个区间内的最值&#xff0c;假设有n个结点&#xff0c;m次询问&#xff0c;暴力的解决办法…

51、基于主成分分析和聚类分析的基因表达分析(matlab)

1、主成分分析和聚类分析简介 主成分分析(Principal Component Analysis, PCA)和聚类分析(Cluster Analysis)是两种常用的数据分析方法,用于降维和数据分类。 1)主成分分析(PCA) 主成分分析是一种常用的多元统计数据分析方法,旨在通过找到数据中最重要的变量(主成…

股票分析-20240628

今日关注&#xff1a; 20240626 六日涨幅最大: ------1--------300386--------- 飞天诚信 五日涨幅最大: ------1--------300386--------- 飞天诚信 四日涨幅最大: ------1--------300386--------- 飞天诚信 三日涨幅最大: ------1--------300386--------- 飞天诚信 二日涨幅最…

基于go-gmsm静态库编写的SM2椭圆曲线公钥密码算法PHP扩展 相较于openssl-ext-sm2编译更方便 增加了密文指定排序、识别ans1编码等功能

go-ext-sm2 介绍 基于go-gmsm静态库编写的SM2椭圆曲线公钥密码算法PHP扩展 相较于openssl-ext-sm2编译更方便 增加了密文指定排序、识别ans1编码等功能 特性:非对称加密 git地址:https://gitee.com/state-secret-series/go-ext-sm2.git 软件架构 zend 常规PHP扩展结构 …

vue-org-tree搜索到对应项高亮展开

效果图&#xff1a; 代码&#xff1a; <template><div class"AllTree"><el-form :inline"true" :model"formInline" class"demo-form-inline"><el-form-item><el-input v-model"formInline.user&quo…

c++ using namespace std的作用及注意事项

在C中&#xff0c;using namespace std; 是一个常见的指令&#xff0c;它用于简化标准库&#xff08;Standard Library&#xff09;中类和函数的引用。下面我将详细解释这个指令的作用和使用时的注意事项。 作用 在c/c标准库中&#xff0c;许多类和函数的定义都在std(standar…

【Git】远程仓库操作

创建远程仓库 在官网进行注册登录&#xff1a;Gitee或Github 进入后点击新建仓库&#xff0c;默认选项创建即可 **仓库创建完成后可以看到SSH的仓库地址&#xff1a;gitgitee.com:username/test.git**或gitgithub.com:Toukensan/test.git 配置SSH公钥 在本地通过命令行创建…

js学习--制作猜数字

猜数字制作 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>function fun() {alert("1-100猜数字");let num Math.floor(Math.random() * 100) 1;for …

MDB-RS232 控制自动售货机MDB年龄验证设备

(以下是与台湾ICT的DCM5年龄验证设备测试数据) &#xff08;如果需要使用年龄验证设备&#xff0c;一定要记得购买MDB-RS232的PRO版本&#xff0c;也就是专业版&#xff09; 指令 HEX 代码 描述 RESET(复位) 68H 复位设备 SETUP(配置) 69H 读取年龄验证设备配置 Expa…

12个视觉艺术分类

视觉设计可以按照多种方式进行分类&#xff0c;这些分类通常基于设计的目的、风格或应用场景。本文为大家介绍12种视觉设计&#xff0c;分别是平面设计、标志设计、包装设计、用户界面设计 (UI Design)、用户体验设计 (UX Design)、插图设计、网页设计、动画设计、展览设计、环…