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

这篇具有很好参考价值的文章主要介绍了解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、问题现象

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

sqlyog2058,MySQL,mysql,SQLyog

二、原因分析

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

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

sqlyog2058,MySQL,mysql,SQLyog

三、解决方案

1. 方案1:更新SQLyog版本

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

sqlyog2058,MySQL,mysql,SQLyog

查看了一下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

sqlyog2058,MySQL,mysql,SQLyog

然后重启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+的数据库了。

sqlyog2058,MySQL,mysql,SQLyog
注意:对于已有的用户,如果使用的仍是caching_sha2_password加密方式,那么仍无法用SQLyog连接,你可以使用方案2,重新设置其加密方式及密码。文章来源地址https://www.toymoban.com/news/detail-723301.html

四、最后总结

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

到了这里,关于解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】Navicat/SQLyog连接Ubuntu中的数据库(MySQL)

    🏡浩泽学编程 :个人主页  🔥 推荐专栏 :《深入浅出SpringBoot》《java对AI的调用开发》               《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 遇到一个Navicat/SQLyog连接Ubuntu中的数据库(MySQL)的报错:中文意思是不能在x.x.x.x(主机号)上连

    2024年02月21日
    浏览(57)
  • 已解决java.lang.ClassNotFoundException——java连接mysql8/mysql5

    这里大家没必要去mysql官网安装,可以直接安装phpStudy_pro,毕竟小皮面板的宣言是让天下没有难配的服务器环境,如下是小皮面板的界面(同样的,此次用到的所有资料文末公众号可免费领取): 官网下载或者找公众号免费资料包均可: 官网地址:https://downloads.mysql.com/archiv

    2024年01月21日
    浏览(50)
  • 【IDEA】 解决在idea中连接 Mysql8.0,驱动无法下载问题

    本篇继【idea】解决sprintboot项目创建遇到的问题2-CSDN博客 目录 一、Failed to download \\\'https://download.jetbrains.com/idea/jdbc-drivers/MySQL/8/LICENSE.txt\\\':Remote host terminated the handshake 二、no dirver files provided com.mysql.cj.jdbc.Driver 三、Server returns invalid timezone. Need to set \\\'serverTimezone\\\' property.  我本地安

    2024年01月18日
    浏览(45)
  • 远程CentOs安装了MySQL,本地的Nvaicat/SqlYog无法正常连接?

    #1、创建新用户 mysql CREATE USER ‘username’@‘%’ IDENTIFIED BY ‘userpassword’; #给普通用户远程连接的权限: #2、授权 myuser 用户对指定库的所有表,所有权限并设置远程访问 mysql GRANT ALL ON 指定库.* TO ‘username’@‘%’; #3、更新 该 用户密码 mysql ALTER USER ‘username’@‘%’ IDENTIFIED

    2024年02月16日
    浏览(40)
  • 解决Centos下载MySQL8.0时公钥报错未安装或不正确问题

    这篇blog是2024年!!!! 安装mysql8以如下步骤的话 1. 配置yum仓库 `rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022` 2. 安装mysql8.x版本,yum库  `rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm ` 3. 使用yum安装MySQL:yum -y install mysql-community-server 4. 安装完成后自启动配置,

    2024年04月09日
    浏览(51)
  • 解决MySQL8.0报错Client does not support authentication protocol requested by server...问题

    解决MySQL8.0报错Client does not support authentication protocol requested by server; consider upgrading MySQL client问题 原创:丶无殇  2023-10-07 使用node.js连接数据库MySQL 8时候,报错 ER_NOT_SUPPORTED_AUTH_MODE ,并且提示 Client does not support authentication protocol requested by server; consider upgrading MySQL client :客

    2024年02月07日
    浏览(49)
  • Sqlyog 无法连接 8 版本的mysql caching_sha2_password could not be loaded

    近期系统对Mysql 版本进行了升级,由原来的 5.7升至 8版本,在现场使用Sqlyog 作为数据库连接软件时,发现连接失败。 使用Sqlyog配置完连接信息后点击连接,报错: MySQL 8.0中修改了默认的密码加密方式,使用了caching_sha2_password加密方式,对于Sqlyog老版本不支持该方式,从13.

    2024年02月06日
    浏览(45)
  • 远程桌面连接:出现身份验证错误,要求的函数不受支持报错,解决方法

    今天我用A电脑远程B电脑时出现下图报错,网上查阅资料,亲测,问题已经解决。 1、问题截图 2、解决方法:在A电脑上执行以下操作(注:你远程出现报错的电脑) 1)window+R键,打开运行窗口,输入“regedit”,打开注册表 2)找到注册表路径,计算机 HKEY_LOCAL_MACHINESOFTWAR

    2024年02月16日
    浏览(37)
  • DBeaver驱动连接错误解决方法(提示:com.mysql.cj.jdbc.Driver错误)

    1、提示驱动错误且下载一直失败         1、打开DBeaver点击窗口--窗口--首选项--点击驱动--Maven--添加新的源         2、添加源地址然后进行应用,把添加的源地址移动到最上面(我把其他的地址禁用了,我用不了)         阿里:http://maven.aliyun.com/nexus/content/groups/publ

    2024年02月05日
    浏览(57)
  • 报错处理:MySQL报错解决:连接失败原因与解决方案

    大家好,今天我来分享一下在Linux上遇到的一个MySQL连接失败的报错以及解决方法。如果你在尝试连接MySQL数据库时遇到以下报错信息:“Can’t connect to MySQL server on ‘localhost’ (111)”,那么请接着往下看,我会帮你找到可能的原因和解决方案。 一、问题描述 这个报错信息通常

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包