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

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

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

有什么解决办法吗?


当前回答

如果仍然希望使用新的身份验证方法,正确的解决方案是安装mariadb-connector-c包。对于Alpine,运行:

apk add mariadb-connector-c

这将添加缺少的caching_sha2_password。库到/usr/lib/mariadb/plugin/caching_sha2_password。So。

其他回答

如果你像我一样在GitLab上得到这个错误: 只要从最新版本更改到5.7版本即可;)

# .gitlab-ci.yml

rspec:
  services:
    # - mysql:latest (I'm using latest version and it causes error)
    - mysql:5.7 #(then I've changed to this specific version and fix!)

如果你试图从基于文本的MySQL客户端从另一台计算机(无论是Docker还是其他计算机)连接到MySQL服务器

这里的大多数答案涉及从桌面客户端连接,或者要求您切换到较旧的身份验证方法。如果你将它连接到MySQL客户端(基于文本),我让它在Docker容器中使用Debian Buster。

假设你有apt系统,并且已经设置好了,请执行以下操作:

Sudo apt-get update Sudo apt-get install lsb-release -y 从MySQL网站上下载一个Debian软件包来更新apt源代码。 Sudo DPKG -i mysql-apt-config_0.8.13-1_all.deb然后选择你想要的选项。在我的情况下,我只需要MySQL工具和连接器启用。 Sudo apt-get update 安装mysql-client -y 完成了。现在可以运行新的MySQL客户端并连接到新的身份验证方法。

PIP卸载mysql-connector

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

我在Windows 10电脑上使用“MySQL Web安装程序”安装MySQL,在尝试使用MySQL工作台连接时遇到了同样的问题。我通过在安装程序窗口中重新配置服务器来解决这个问题。

点击“重新配置”选项将允许重新配置服务器。点击“下一步”,直到你到达“认证方法”。

在这个选项卡上,使用第二个选项“使用遗留身份验证方法(保留MySQL 5。x兼容性)”。

保持一切不变,这就是我如何解决我的问题。

对于那些使用Docker或Docker Compose的人,我遇到了这个错误,因为我没有设置我的MySQL镜像版本。Docker将自动尝试获取最新版本,即8。

我将MySQL设置为5.7并重新构建映像,它正常工作:

version: '2'
services: 
  db:
   image: mysql:5.7