当前位置:   article > 正文

SQLyog Ultimate v12.09(64 bit)连接mysql8时报错(plugin caching_sha2_password could not be loaded),已解决_sqlyog12.09

sqlyog12.09

0、mysql --version

C:\Users\dgq>mysql --version
mysql  Ver 8.0.26 for Win64 on x86_64 (MySQL Community Server - GPL)
  • 1
  • 2

1、报错截图

在这里插入图片描述
在这里插入图片描述

2、解决方法

解决方法: 一种是升级SQLyog和Navicat(新版SQLyog和Navicat不会出现此问题),另一种是把MySQL用户登录密码加密规则还原成mysql_native_password。

2.1、连接数据库

C:\Users\dgq>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.26 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.2、show grants;

mysql> show grants;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION                                                                                                                                                                                                                    |
| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.3、ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)


  • 1
  • 2
  • 3
  • 4

2.4、flush privileges;

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
  • 1
  • 2

3、连接SQLyog

在这里插入图片描述

4、MySQL 8.0 默认使用 caching_sha2_password 作为密码认证插件

在MySQL中,ALTER USER 语句用于修改用户账户的属性,包括密码、密码加密方式等。你提供的命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
  • 1

这条命令的作用是:

  • 修改用户名为root,主机名为localhost的用户的密码。
  • 将该用户的密码加密方式更改为mysql_native_password
  • 设置新的密码为123456

这个命令特别有用在MySQL 8.0及更高版本中,因为MySQL 8.0默认使用caching_sha2_password作为密码认证插件,而一些旧的应用程序或库可能不支持这种认证方式,需要使用mysql_native_password来兼容。

在执行这条命令之前,请确保你拥有足够的权限来修改用户账户,并且MySQL服务正在运行。

如果你遇到权限问题,可能需要以root用户(或具有足够权限的用户)的身份登录MySQL服务器。

如果你正在尝试通过命令行执行这条SQL命令,你需要首先登录到MySQL服务器,然后执行这条命令。例如:

mysql -u root -p
  • 1

然后输入你的当前密码(如果之前没有设置密码,可能会直接登录),登录成功后,在MySQL命令行界面执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
  • 1

执行成功后,你应该会看到一条消息表明查询已执行成功,现在你可以使用新密码123456mysql_native_password加密方式登录root@localhost用户了。

最后,请注意,出于安全考虑,建议不要在生产环境中使用简单的密码,如123456。使用更复杂且难以猜测的密码来保护你的数据库。

5、MySQL 5.7 及之前的版本中,mysql_native_password 是默认的身份验证插件。

mysql_native_password 翻译成中文通常可以表述为“MySQL 原生密码认证插件”。在 MySQL 数据库中,认证插件用于验证用户登录时的身份和权限。mysql_native_password 是 MySQL 默认使用的认证插件之一,它实现了传统的 MySQL 密码加密和验证方法。

随着 MySQL 的发展,出现了其他认证插件,如 caching_sha2_passwordsha256_password 等,这些插件提供了更强的密码验证和加密机制。然而,由于 mysql_native_password 已经在 MySQL 中使用了很长时间,并且被广泛支持,因此它仍然是许多 MySQL 安装和应用程序中的首选认证插件。

简单来说,mysql_native_password 就是 MySQL 用来确保用户密码安全,并在用户尝试连接到数据库时进行身份验证的一个标准插件。

6、总结

mysql_native_password 插件是 MySQL 数据库在不同版本中的默认身份验证插件情况有所不同。以下是关于 mysql_native_password 作为默认插件的版本信息:

  1. MySQL 5.7 及之前版本

    • 在 MySQL 5.7 及之前的版本中,mysql_native_password 是默认的身份验证插件。这个插件使用 MySQL 自己的密码哈希算法,将用户提供的密码与存储在数据库中的密码哈希进行比较,以验证用户的身份。
  2. MySQL 8.0 及以后版本

    • 从 MySQL 8.0 版本开始,默认的身份验证插件被更改为 caching_sha2_password。这个插件使用 SHA-256 算法对密码进行哈希,并支持将哈希值缓存到服务器内存中,以提高验证效率。然而,尽管 caching_sha2_password 成为了默认的认证插件,但 MySQL 8.0 仍然支持 mysql_native_password,并且允许用户根据需要更改现有用户或新用户的认证插件。

如何更改认证插件

在 MySQL 8.0 及以后版本中,如果需要将用户的认证插件从 caching_sha2_password 更改为 mysql_native_password,可以使用 ALTER USER 命令。例如:

ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'new_password';
  • 1

在这个命令中,'username'@'hostname' 是要修改的用户账户,'new_password' 是用户的新密码。

注意事项

  • 在更改认证插件之前,请确保了解当前客户端和应用程序对认证插件的支持情况。有些客户端或应用程序可能不支持 caching_sha2_password 插件,但可能需要与 MySQL 8.0 或更高版本的数据库交互。
  • 更改认证插件可能会影响数据库的安全性和性能,因此请在执行此操作之前仔细评估其影响。

综上所述,mysql_native_password 是 MySQL 5.7 及之前版本的默认身份验证插件,而在 MySQL 8.0 及以后版本中,默认插件被更改为 caching_sha2_password。但用户仍然可以根据需要更改认证插件。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号