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

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

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

有什么解决办法吗?


当前回答

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

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

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

其他回答

好吧,在这上面浪费了很多时间,所以这里是截至2019年3月19日的总结

如果你特别想在MySql 8+中使用Docker镜像,然后使用SequelPro来访问运行在Docker容器上的数据库,那你就不走运了。

请参阅第2699期续作

我的设置是sequelpro 1.1.2,使用docker desktop 2.0.3.0 (mac - mojave),并尝试使用mysql:latest (v8.0.15)。

正如其他人所报道的,使用mysql 5.7不需要任何东西:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

当然,也可以在docker上使用MySql 8+,在这种情况下(如果需要的话),这里提供的其他解决caching_sha2_password类型问题的答案是有效的。但是sequelpro在MySql 8+中是行不通的

最后,我放弃了sequelpro(一个值得信赖的朋友,从2013年到2014年),而是安装了DBeaver。一切都在框框之外。对于docker,我使用:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

你可以快速查看mysql数据库使用:

docker exec -it mysql1 bash

mysql -u root -p

show databases;

您可以像这样更改密码的加密。

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

我也遇到了同样的问题,但是Aman Aggarwal的答案在运行mysql 8.X的Docker容器中对我不起作用。 我登录了集装箱

docker exec -it CONTAINER_ID bash

然后以root用户登录mysql

mysql --user=root --password

输入root密码(默认为'root') 最后运行:

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

你都准备好了。

在Debian 11中,我有mariadb-client-10.3 MySQL客户端,我有以下错误:

错误1045 (28000):Plugin caching_sha2_password cannot be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/ Plugin /caching_sha2_password. txtso:不能打开共享对象文件:没有这样的文件或目录

我通过升级系统解决了这个问题。

macOS的MySQLWorkbench 8.0.11解决了这个问题。 我可以建立连接与根密码保护mysql实例运行在docker。