在navicat客户端Mysql连接出现Authentication plugin ‘caching sha2 password‘ cannot be loaded: @Xeegeeeg问题

在连接到 MySQL 数据库时遇到了一个身份验证插件加载错误。错误消息中提到了 caching sha2 password 插件无法加载,并以 @Xeegeeeg 结束。

这个错误通常发生在使用旧版本的 MySQL 客户端连接到新版本的 MySQL 服务器时。在新版本的 MySQL 中,默认启用了 caching_sha2_password 身份验证插件,而旧版本的客户端可能不支持该插件,导致无法成功连接。

有几种解决方法可以尝试:

  1. 更新 MySQL 客户端:尝试使用最新版本的 MySQL 客户端连接到服务器,以确保兼容性。

  2. 更改身份验证插件:在 MySQL 服务器上更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件(例如 mysql_native_password)。你可以编辑 MySQL 配置文件(通常是 my.cnfmy.ini),找到并修改 default_authentication_plugin 参数的值。

  3. 创建新用户:在 MySQL 服务器上创建一个新用户,将其身份验证插件设置为与旧版本的客户端兼容的插件,然后使用该用户进行连接。

方法一:更改身份验证插件:在 MySQL 服务器上更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件(例如 mysql_native_password)。你可以编辑 MySQL 配置文件(通常是 my.cnfmy.ini),找到并修改 default_authentication_plugin 参数的值。或者打开mysql终端进行更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件。以下是终端操作

注意以下的username和password可以自行换成自己的。或者直接用也可以

要创建一个新用户并为其授予查看所有表的权限,你可以使用以下命令:

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 

 通过 GRANT 命令授予该用户在本地访问数据库中的所有表的 所有权限

GRANT All ON *.* TO 'username'@'localhost'; 

  权限生成

FLUSH PRIVILEGES;

(下面的是只能select权限,如果要所有的权限,上面的即可)

这将创建一个名为 username 的新用户,并使用 mysql_native_password 身份验证插件进行身份验证。然后,通过 GRANT 命令授予该用户在本地访问数据库中的所有表的 SELECT 权限。最后,使用 FLUSH PRIVILEGES 命令刷新权限以使更改生效。

请注意,上述命令中的 'localhost' 表示该用户只能在本地连接到 MySQL 数据库。如果你希望允许远程连接,请将 'localhost' 替换为相应的 IP 地址或主机名。

GRANT SELECT ON *.* TO 'username'@'localhost'; 

  权限生成

FLUSH PRIVILEGES;

如果你只想允许该用户访问特定的数据库和表,而不是所有的表,可以将 *.* 替换为 database_name.table_name。例如,如果要访问名为 healtha 数据库中的所有表,可以使用以下命令:

GRANT SELECT ON healtha.* TO 'username'@'localhost';

记得根据实际需求和安全性考虑,仅授予给予用户所需的最小权限。

 

方法二:创建新用户:在 MySQL 服务器上创建一个新用户,将其身份验证插件设置为与旧版本的客户端兼容的插件,然后使用该用户进行连接。

创建新用户并将其身份验证插件设置为与旧版本的客户端兼容的插件,可以通过 MySQL 的命令行工具或者 MySQL Workbench 等 GUI 工具实现。

以下是通过 MySQL 命令行工具创建新用户的步骤:

  1. 以具有管理员权限的账户登录 MySQL 数据库。在命令行中输入以下命令,并输入管理员账户的密码:

    mysql -u root -p

  2. 创建一个新用户。在命令行中输入以下命令:

    CREATE USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

    其中,username 是你要创建的用户名,password 是该用户的密码。注意,在这里使用了 mysql_native_password 身份验证插件,它是与旧版本的 MySQL 客户端兼容的插件。

  3. 授予该用户访问数据库的权限。在命令行中输入以下命令,将用户授权给访问指定的数据库:

    GRANT ALL PRIVILEGES ON database_name.* TO 'username';

    其中,database_name 是你要授权的数据库名,username 是你刚刚创建的用户名。

  4. 刷新权限。在命令行中输入以下命令,以使更改生效:

    FLUSH PRIVILEGES;

现在,你可以使用刚刚创建的用户连接到 MySQL 数据库,并且该用户的身份验证插件是与旧版本的 MySQL 客户端兼容的插件。

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值