我正在连接MySQL - 8.0与MySQL工作台和得到以下错误:

无法加载认证插件“caching_sha2_password”: dlopen (/ usr /地方/ mysql / lib /插件/ caching_sha2_password。所以,2):图像 没有找到

我也尝试过其他客户端工具。

有什么解决办法吗?


当前回答

你可以用下面的Alter命令改变用户密码的加密:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY “密码”;

OR

我们可以通过使用old password插件来避免这个错误:

首先修改my.cnf文件中的认证插件,用于Linux / Windows中的my.ini文件:

(mysqld) default_authentication_plugin = mysql_native_password

重新启动mysql服务器以使更改生效,并尝试通过mysql连接任何mysql客户端。

如果仍然无法连接并得到以下错误:

Unable to load plugin 'caching_sha2_password'

这意味着你的用户需要上面的插件。所以尝试在修改默认插件后用create user或grant命令创建新用户。然后新用户需要本地插件,你将能够连接MySQL。

谢谢

其他回答

对我来说,这种情况开始发生是因为在一个项目中,我正在使用Docker映像mysql:latest(这是版本5,并且工作良好),在后来的构建中,最新版本切换到版本8,并停止工作。我把我的映像改为mysql:5,我不再得到这个错误。

我在M1 (arm64)中运行docker,在docker bash中直接更改的方式不适合我。相反,我将mysql映像更改为 mysql: 8.0.26 平台设置为 linux / x86_64 在my.cnf中添加default_authentication_plugin=mysql_native_password 然后,重新构建容器。

几乎像上面的答案一样,但可能是在简单的查询中,我在MySQL升级后的spring引导应用程序和hibernate中得到了这个错误。通过对DB运行下面的查询,我们创建了一个新用户。我相信这是一个临时的工作,使用sha256_password而不是最新的和良好的身份验证caching_sha2_password。

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';

PIP卸载mysql-connector

然后安装 PIP安装mysql-connector-python

下面的解决方案对我很有效

进入Mysql Workbench -> Server-> Users and Privileges 1.单击“添加帐户”

2.在登录选项卡下提供新的详细信息,并确保选择认证类型作为标准,并选择各自的管理角色和模式特权