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

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

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

有什么解决办法吗?


当前回答

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

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

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

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

其他回答

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

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

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

我也遇到了同样的问题,但是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';

你都准备好了。

这是我在docker-compose中的数据库定义:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

相关的行是入口点。

在构建和建立它之后,你可以用以下方法测试它:

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

打开sql命令提示符:

然后输入mysql密码

最后使用:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password'

参见:https://stackoverflow.com/a/49228443/6097074

谢谢。

对于Windows 10,

修改C:\ProgramData\MySQL\MySQL Server 8.0目录下my.ini文件 (mysqld) default_authentication_plugin = mysql_native_password 重新启动MySQL服务。 通过命令行登录MySQL,在MySQL中执行如下命令: 创建新用户。 创建用户“USER”@“localhost” 授予所有特权。 授予'user'@'localhost'上的所有权限; 打开MySQL工作台,并使用新的用户凭证打开一个新连接。

我也面临着同样的问题,这个方法奏效了。