解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058

news2024/11/27 11:50:17

文章目录

    • 一、问题现象
    • 二、原因分析
    • 三、解决方案
      • 1. 方案1:更新SQLyog版本
      • 2. 方案2:修改用户的授权插件
      • 3. 方案3:修复my.cnf 或 my.ini配置文件
    • 四、最后总结

本文将总结如何解决 SQLyog 连接 MySQL8.0+ 时报错:错误号码2058

一、问题现象

使用SQLyog连接MySQL8.0+数据库时,报错:
错误号码2058 Plugin caching_sha2_password could not be loaded

错误号码2058

二、原因分析

出现这个问题,是因为 MySQL 从 8.0 版本开始,新增了caching_sha2_password授权插件,并且新建用户时默认使用该插件进行加密,而你的 SQLyog 版本无法识别该加密方式加密的密码。
(多数情况下是你的SQLyog版本过时了,新的SQLyog已支持识别caching_sha2_password加密方式的密码)

MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables

mysql授权插件

三、解决方案

1. 方案1:更新SQLyog版本

查看你的SQLyog安装路径下,是否有caching_sha2_password.dll动态库,如果没有则说明你的SQLyog版本,不支持通过caching_sha2_password加密的用户进行连接数据库。

在这里插入图片描述

查看了一下SQLyog的发布历史:Version History - 2019 - SQLyog Knowledge Base (webyog.com)
SQLyog 13.1.3开始,才支持caching_sha2_password授权插件

如果你需要更新SQLyog,你可能需要 SQLyog 各版本下载与安装

2. 方案2:修改用户的授权插件

使用有mysql.user表权限的用户连接mysql并执行如下命令:

mysql> ALTER USER 'sqlyog'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234qwer';
Query OK, 0 rows affected (0.03 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

mysql> SELECT user,host,plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
| sqlyog           | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

解释:
ALTER USER 'sqlyog'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234qwer',使用mysql_native_password 授权插件更新用户密码,sqlyog@localhost换为替换为你自己的user及host

3. 方案3:修复my.cnf 或 my.ini配置文件

查找配置文件(如果你的mysql是安装在Window下):

C:\Users\Administrator>mysql --help | findstr "my.ini"
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:\Chen\MySoft\mysql-8.1.0-winx64\my.ini D:\Chen\MySoft\mysql-8.1.0-winx64\my.cnf

查找配置文件(如果你的mysql是安装在Linux或docker里):

sh-4.4# mysql --help | grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

按顺序找配置文件,找到后打开配置文件,在配置文件的[mysqld]下添加如下配置:

default-authentication-plugin=mysql_native_password

修改授权插件

然后重启mysql服务
Windows 上重启服务

net stop mysql
net start mysql

Linux 上重启服务

systemctl stop mysqld
systemctl start mysqld

Docker 上重启mysql容器

docker restart mysql81

mysql81使用你的 mysql容器名称或ID替换

重启完成后,mysql服务使用的默认加密授权插件就成了mysql_native_password,然后新创建的用户如果不指定授权插件,那么创建完成后就使用默认插件加密了。

mysql> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | mysql_native_password |
+-------------------------------+-----------------------+
1 row in set (0.01 sec)

mysql> CREATE USER 'sqlyog'@'%' IDENTIFIED BY '1234qwer';
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'sqlyog'@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT user,host,plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| root             | %         | caching_sha2_password |
| sqlyog           | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)

此时再使用新创建的用户,就可以连接mysql8.0+的数据库了。

在这里插入图片描述
注意:对于已有的用户,如果使用的仍是caching_sha2_password加密方式,那么仍无法用SQLyog连接,你可以使用方案2,重新设置其加密方式及密码。

四、最后总结

  1. 严格来说上述方案3方案2是一样的(不太推荐方案3)。
    方案3仅是将服务器默认的授权插件改为了mysql_native_password,它仅对新创建的用户起作用(前提是创建用户时没有指定授权插件),并不会影响已有的用户的加密方式。如果想使用已有用户连接mysql,需使用方案2重新设置其授权插件及密码。
  2. 方案1更新SQLyog的方案还是值得尝试的,毕竟是一劳永逸的事儿。更新SQLyog 13.1.3+后,无论连接用户使用什么授权插件,都可连接上。

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

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

相关文章

数据可视化大屏模板 | 保姆级使用教程

近来很多朋友私信咨询怎么下载使用数据可视化大屏模板,在这里就给大家做一个相对简单的教程总结。有需要的朋友记得先收藏保存,以便不时之需。 数据可视化大屏制作软件:奥威BI系统 数据可视化报表模板板块:模板秀 主要操作&…

uni-app:实现条件判断展示图片(函数判定+三目运算)

一、多条件判断&#xff08;通过函数进行图片展示&#xff09; 效果 代码 在data中定义图片信息和要传递的数据信息&#xff0c;在src中写入函数并携带要传递的数据&#xff0c;通过传递的数据在函数中进行判断&#xff0c;并返回对应的图片信息 <template><view&…

vue中转换base64文件数据后通过blob下载

可以看到这里我要转换的数据是content字段&#xff0c;即将base64文件数据转换后下载下来&#xff1a; downloadAttachment({ attachmentId: id }).then(({ data }) > {proxy.$modal.closeLoading();// atob先解码base64数据const raw window.atob(data.content);// 获取解…

亚马逊小类目排名怎么看?亚马逊小类目是什么意思?——站斧浏览器

亚马逊的产品分类结构被分为多个级别&#xff0c;包括大类目、小类目和子类目。本文介绍了亚马逊小类目排名查看方式。 亚马逊小类目排名怎么看&#xff1f; 小类目排名是亚马逊为每个小类目中的商品分配的销售排名。它反映了在该小类目中的销售表现&#xff0c;通常以数字形…

Python编程指南:利用HTTP和HTTPS适配器实现智能路由

嗨&#xff0c;爬虫大佬们&#xff01;今天我要为大家分享一篇关于如何利用HTTP和HTTPS适配器来实现智能路由的Python编程指南。在现代互联网应用中&#xff0c;路由功能起着至关重要的作用&#xff0c;而利用Python编程语言实现智能路由则可以为我们的应用带来更高的灵活性和性…

LeetCode-热题100-笔记-day28

98. 验证二叉搜索树https://leetcode.cn/problems/validate-binary-search-tree/ 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点…

AI绘画:StableDiffusion实操教程-斗罗大陆-朱竹清(附高清图下载)

大家好&#xff0c;我是小梦&#xff0c;最近一直研究AI绘画。 不久前&#xff0c;我与大家分享了StableDiffusion的全面教程 然而&#xff0c;仍有些读者提出&#xff0c;虽然他们已经成功地安装了此工具&#xff0c;但生成的作品与我展示的相差较大。那么&#xff0c;如何缩…

TM1638的8个LED灯和8个数码管的使用

一、模块介绍 上图为使用的模块&#xff0c;顶部8个LED&#xff0c;8个数码管&#xff1b;中间TM1638芯片&#xff0c;右侧是8个二极管&#xff08;非发光二极管&#xff09;&#xff1b;最下方是8个按键。 电路图如下图所示 二、TM1638 1、数据传输格式 在传输数据时&#x…

Java“牵手”快手商品详情数据,快手商品详情接口,快手API接口申请指南

快手商城是快手小店平台和快手进口电商平台的公域导购场景&#xff0c;也是快手的在线购物平台。 用户打开快手APP后点击"商城"即可进入&#xff0c;在商城首页信息流、商城品类频道&#xff08;如女装、百货、家电频道等&#xff0c;其中&#xff0c;部分频道的商品…

如何用思维导图做笔记

思维导图是一个强大的学习工具&#xff0c;可以帮助我们更好地整理和梳理学习内容。好的笔记可以帮助我们在考试前夕事半功倍。大大提高效率。秒变学霸小达人。 今天我们就结合思维导图&#xff0c;告诉大家如何做出一份出色的思维导图笔记。 5R笔记法是一种用于学习和记笔记…

day6_C++

day6_C 模板 栈模板 队列思维导图 模板 栈 stack.h #ifndef STACK_H #define STACK_H#include <iostream> #include <cstring>using namespace std;#define MAX 5template<typename T> class Stack { public:/*构造函数*/Stack();/*拷贝构造函数*/Stack(co…

看板管理:以可视化方式确定任务优先级

确定工作的优先级是我们今天都要面对的挑战。若处理不当&#xff0c;我们就可能试图一心多用&#xff0c;从而严重损害工作效率。 使用看板方法来设定工作优先级是一种非常直观、快速的方法。 确定工作优先级的看板方法 看板工作流程管理方法的核心在于工作可视化。工作被划…

邀请函 | 什么是全协议存算一体化解决方案?

近日&#xff0c;趋动科技与 XSKY星辰天合联合推出了针对教育行业的全协议存算一体化解决方案&#xff0c;实现了最小规模&#xff08;3 节点&#xff09;的人工智能算力和存力资源池化的基础设施平台建设&#xff0c;帮助客户共享数据中心内所有服务器商的 GPU 算力以及存力&a…

不定积分的基本公式与换元积分法

不定积分的基本公式 不定积分的基本公式如下&#xff1a; 常数函数积分&#xff1a;∫0dxC。幂函数积分&#xff1a;∫x^α dx[x^(α1)]/(α1)C&#xff08;α≠-1&#xff09;。一次二项式积分&#xff1a;∫x/(abx)dx(bx-aln|abx|)/b^2C。二次二项式积分&#xff1a;∫x^2/(…

【小程序】基于SpringBoot开发的餐厅点餐系统

文章目录 系统介绍后端管理&#xff1a;微信小程序&#xff1a;功能展示 系统介绍 开发工具 IDEA、vscode、微信开发者工具 后台框架 SpringBoot 前端框架 vue、uniapp 后端管理&#xff1a; 管理员可以添加&#xff0c;修改&#xff0c;删除员工信息。 分类管理&#xff…

Python实现猎人猎物优化算法(HPO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

AgentGPT:基于GPT-4的开源AI自动化机器人工具

【产品介绍】 AgentGPT是一个基于GPT-4的开源AI自动化机器人工具&#xff0c;可以让你在浏览器中配置和部署自主的 AI机器人。你可以给机器人设置一个名字和一个目标&#xff0c;然后点击部署按钮&#xff0c;就可以看到机器人进行的行为和输出&#xff0c;完全不需要人为干涉的…

【自动化测试】接口自动化测试工具有哪些?

Jmeter jmeter完成接口脚本,Ant完成脚本执行并收集结果生成报告,最后利用jenkins完成脚本的自动集成运行。 Postman或者newman javahttpclient&#xff0c;通过代码实现 JavaRestassored pythonrullib2 pythonrequests httprunner yapi 轻量 代码实现框架 pythonrequest…

PY32F003F18之PWM互补输出

PY32F003F18中有一个“数字比较器”&#xff0c;这是我的叫法&#xff0c;为了便于和模拟比较器区分。它用作PWM输出功能。 一、比较通道1电路图 二、PWM工作模式 PWM的工作模式&#xff1a; 1、PWM边沿对齐模式 计数器工作在"边沿对齐模式" 设置"TIMx控制寄存…

C语言 -- 零基础入门详解

文章目录 引言1. 第一个C语言程序&#xff1a;HelloWorld1.1 编写C语言代码&#xff1a;hello.c1.2 代码分析 2. 数据类型2.1 常量与变量2.1.1 关键字2.1.2 数据类型2.1.3 常量2.1.4 变量2.1.5 使用示例 2.2 整型&#xff1a;int2.2.1 整型变量的定义和输出2.2.2 整型变量的输入…