• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

解决 SQLyog 连接 MySQL 8.4.2 报错 2058 的方法(Windows 平台)

解决 SQLyog 连接 MySQL 8.4.2 报错 2058 的方法(Windows 平台)

在使用 SQLyog 连接 MySQL 8.4.2 时,你可能会遇到错误代码 2058。这个错误通常是由于 MySQL 8.0 默认使用的 caching_sha2_password 身份验证插件与 SQLyog 不兼容导致的。本文将详细介绍如何在 Windows 平台上解决这个问题。

1. 错误描述

当你尝试使用 SQLyog 连接 MySQL 8.4.2 时,可能会遇到以下错误:

2058 - Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.

2. 原因分析

MySQL 8.0 默认使用 caching_sha2_password 插件进行身份验证,而 SQLyog 可能不支持这种新的身份验证方式。为了解决这个问题,你可以将 MySQL 用户的身份验证插件改为 mysql_native_password,这是 MySQL 传统的身份验证插件,兼容性更好。

3. 解决方法

以下是详细的解决步骤:

步骤 1:登录 MySQL

首先,使用命令行工具登录到 MySQL 服务器。你可以使用以下命令:

mysql -u root -p

我的登录操作如下

mysql -u root -P 3307 -p

输入你的 MySQL root 用户密码以登录。

步骤 2:修改用户身份验证插件

登录 MySQL 后,执行以下 SQL 语句,将 root 用户的身份验证插件改为 mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

请将 '你的密码' 替换为你希望设置的新密码。

执行完语句后又报错 ERROR 1524....

这个错误信息表明 MySQL 服务器无法加载 mysql_native_password 插件。这通常是因为该插件在 MySQL 服务器中被禁用或未正确配置

2.1. 检查插件是否已安装

首先,确认 mysql_native_password 插件是否已安装。你可以通过以下查询来检查:

show plugins;

在结果中查找 mysql_native_password 插件。

mysql_native_password 插件的状态为 DISABLED 表示该插件已安装但当前未启用

MySQL8.4参考手册中做如下说明

官方都这么说了 听人劝 吃饱饭

2.2 重启MySQL服务 查看插件状态

在my.ini配置文件 mysqld 后面加上[mysql-native-password=ON]

可以看到mysql-native-password插件的状态时Active

步骤 3:再次修改用户身份验证插件

登录 MySQL 后,执行以下 SQL 语句,将 root 用户的身份验证插件改为 mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

请将 '你的密码' 替换为你希望设置的新密码。

修改用户身份验证插件后,需要刷新权限以使更改生效:

FLUSH PRIVILEGES;
步骤 4:验证修改

你可以通过以下命令检查用户的身份验证插件是否已成功修改:

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

你应该会看到 plugin 列显示为 mysql_native_password。

步骤 5:重启 MySQL 服务

为了确保更改生效,建议重启 MySQL 服务。你可以使用以下命令重启 MySQL 服务[这个要在管理员模式下执行下述命令]:

net stop mysql
net start mysql

我的操作如下

net stop MySQL8.4.0
net start MySQL8.4.0
步骤 6:重新连接 SQLyog

现在,你可以尝试重新连接 SQLyog 到 MySQL 服务器。你应该不会再遇到 2058 错误。

4. 其他注意事项

  • 备份数据:在执行任何数据库操作之前,请确保备份你的数据,以防意外情况发生。

  • 客户端兼容性:确保你使用的 SQLyog 版本支持 MySQL 8.0。较新的 SQLyog 版本通常已经解决了与 caching_sha2_password 插件的兼容性问题。

  • 配置文件:如果你希望所有新创建的用户都使用 mysql_native_password 插件,可以在 MySQL 配置文件(my.ini 或 my.cnf)中添加以下配置:

    [mysqld]
    mysql-native-password=ON
    

5. 总结

通过将 MySQL 用户的身份验证插件改为 mysql_native_password,你可以解决 SQLyog 连接 MySQL 8.4.2 时遇到的 2058 错误。这个方法简单易行,适用于大多数 Windows 平台上的 MySQL 用户。

希望这篇技术博客能帮助你顺利解决 SQLyog 连接 MySQL 8.4.2 的问题。如果你有任何疑问或遇到其他问题,请随时在评论区留言。

posted on 2024-11-13 15:41  周政然  阅读(1746)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3