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

文章目录

    • 一、问题现象
    • 二、原因分析
    • 三、解决方案
      • 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.mzph.cn/news/83419.shtml

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

相关文章

线程池:神秘的“轻量级线程”

当前我们的多线程部分已经学习了几个代码案例: 1.单例模式 2.阻塞队列 -> 生产者消费者模型 3.定时器 4.线程池 而线程存在的意义就是,使用进程来实现并发编程会“太重了”,创建和销毁进程都会比较耗资源。 但是线程会更加高效。此时&…

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群,底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的名称空间,例如,可以为test、dev、prod环境分别创建各…

Stable Diffusion 参数介绍及用法

大模型 CheckPoint 介绍 作用:定调了作图风格,可以理解为指挥者 安装路径:models/Stable-diffusion 推荐: AnythingV5Ink_v32Ink.safetensors cuteyukimixAdorable_midchapter2.safetensors manmaruMix_v10.safetensors counterf…

Python 图片处理笔记

import numpy as np import cv2 import os import matplotlib.pyplot as plt# 去除黑边框 def remove_the_blackborder(image):image cv2.imread(image) #读取图片img cv2.medianBlur(image, 5) #中值滤波,去除黑色边际中可能含有的噪声干扰#medianBlur( Inp…

买卖股票的最佳时机

一、题目。 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…

2023年云南省职业院校技能大赛中职组“网络安全”赛项样题

2023年云南省职业院校技能大赛 中职组“网络安全”赛项样题 一、竞赛时间 总计:180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 数据库加固 A-3 服务加固SSH\VSFTPD A-4 防火墙策…

php预约系统源码 网上预约小程序开发源码 整套系统搭建让在线预约更便捷

随着互联网技术的发展,越来越多的服务行业开始通过网上预约系统来实现便捷的客户管理和服务提供。PHP预约系统源码作为一种成熟的技术方案,可以帮助商家快速搭建自己的预约系统,提高工作效率,优化客户体验。 分享一个php预约系统…

常见的排序算法及时间空间复杂度

排序算法是计算机科学中的基本算法之一,它用于将一组数据按照某种顺序进行排列。下面是一些常见的排序算法,以及它们的思想和时间空间复杂度,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢…

Python日期处理库:掌握时间的艺术

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 日期和时间在计算机编程…

《中国数字经济发展指数报告(2023年)》发布

导读 国家统计局《数字经济及其核心产业统计分类(2021)》首次对数字经济及其核心产业统计分类做出详细说明。然而,由于数字经济内涵外延的不断丰富,区域数字经济发展的量化评估仍在持续发展的过程中,以量化模型方式能够更加客观全面反映新时…

flash attention的CUDA编程和二维线程块实现softmax

本文参考了链接添加链接描述 flash attention介绍 flash attention的介绍可以参考论文:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness,具体的数学公式参考下面这个图片:其中注意关于矩阵S有两个维度,softmax的操作维度是dim=1,用pytorc…

【HarmonyOS】元服务卡片router实现跳转到指定页面

【关键字】 元服务卡片、router跳转不同页面 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面功能。此处以JS UI开发服务卡片为例,JS卡片支持组件设置action,包括router事件和message事件&…

蒙特卡洛方法的数学基础-1

蒙特卡洛方法的数学基础-1 概率论 Bayes 公式 常用分布 Binominal Distribution Poisson Distribution Gaussian Distribution Exponential Distribution Uniform Distribution 大数定理 均匀概率分布随机地取N个数xi ,函数值之和的算术平均收敛于函数的期望值 …

基于nRF7002-DK的NFC功能切换系统(nRF Connect SDK+NFC)

目录 项目介绍硬件介绍项目设计开发环境及工程目录总体流程图硬件初始化NFC功能实现文本记录安卓应用打开按键切换功能 功能展示项目总结 👉 【Funpack2-6】基于nRF7002-DK的NFC功能切换系统 👉 Github: EmbeddedCamerata/nRF7002-DK-nfc-function-switc…

ADS放大器模型参数含义

ADS放大器模型参数含义 S21 : Forward Transmission Coefficient, use xj*y, polar(x,y), dbpolar(x,y) for complex value 增益,X是增益大小,y是相位 S11 : Forward Reflection Coefficient, use xj*y, polar(x,y), dbpolar(x,y), vswrpolar(x,y) for …

新手学习:ArcGIS对shp文件裁剪

新手学习:ArcGIS对SHP文件裁剪 新手学习 记录每个步骤,因为有很多控件可能刚开始还不熟悉,根本不知道在哪里,所以写的比较详细。 1.添加要裁剪的shp文件 2.查看shp文件的地理坐标系 双击shp文件,就可以查看shp文件的…

C语言——贪吃蛇小游戏

目录 一、ncurse 1.1 为什么需要用ncurse: 1.2 ncurse的输入输出: 1.2.1 如何使用ncurse: 1.2.2 编译ncurse的程序: 1.2.3 测试输入一个按键ncurse的响应速度: 1.3 ncurse上下左右键获取: 1.3.1 如…

TypeScript 从入门到进阶之基础篇(一) ts类型篇

系列文章目录 文章目录 系列文章目录前言一、安装必要软件二、TypeScript 基础类型1.基础类型之 数字类型 number2.基础类型之 字符串类型 string3.基础类型之 布尔类型 boolean4.基础类型之 空值类型 void5.基础类型之 null 、undefined类型6.基础类型之 任意类型 any &#x…

解决ModuleNotFoundError: No module named ‘diffusers.models.cross_attention‘

目录 项目场景: 问题描述 原因分析: 解决方案: 方案一:

面向面试知识--Lottery项目

面向面试知识–Lottery项目 1.设计模式 为什么需要设计模式? (设计模式是什么?优点有哪些?) 设计模式是一套经过验证的有效的软件开发指导思想/解决方案;提高代码的可重用性和可维护性;提高团…