You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过DBeaver连接Dockware/Shopware MySQL数据库求助

解决DBeaver连接Dockware MySQL时的!AuthenticationProvider.BadAuthenticationPlugin!错误

这个错误的核心原因是MySQL认证插件不兼容:Dockware默认的MySQL实例大概率使用了caching_sha2_password认证插件,但DBeaver的JDBC驱动在部分场景下对该插件的支持需要额外配置,或直接存在兼容问题。以下是具体解决步骤:

1. 确认Dockware MySQL的认证插件配置

先进入Dockware的MySQL容器,检查root用户的认证方式:

  • 执行容器进入命令(容器名可通过docker ps查看,通常是Dockware的主容器名):
    docker exec -it <dockware-container-name> mysql -uroot -proot
    
  • 进入MySQL命令行后执行查询:
    SELECT user, plugin FROM mysql.user WHERE user = 'root';
    

如果返回的plugin字段值为caching_sha2_password,即可锁定问题根源。

2. 修改root用户的认证插件为mysql_native_password

在MySQL命令行中执行以下语句,将root用户的认证方式切换为DBeaver兼容的mysql_native_password:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

(注:%表示允许所有主机远程访问,Dockware默认root用户已开启该权限,无需调整)

3. 配置DBeaver连接参数

修改MySQL配置后,重新在DBeaver中配置连接:

  • 选择MySQL连接类型,填写主机127.0.0.1、端口3306、数据库shopware、用户名root、密码root
  • 切换到「驱动属性」标签,找到allowPublicKeyRetrieval选项,设置为true
  • 保存配置后测试连接

4. 验证DBeaver的MySQL驱动版本

若上述步骤无效,检查驱动版本:

  • 打开DBeaver的「数据库」>「驱动管理器」,找到MySQL驱动
  • 确保驱动版本为8.0及以上(8.0版本开始原生支持caching_sha2_password,但需配合allowPublicKeyRetrieval=true使用)
  • 版本过低时,点击「更新」按钮升级驱动

额外排查点

  • 用docker ps确认Dockware容器的3306端口已正确映射到宿主机3306端口
  • 临时关闭宿主机防火墙/安全软件,排除端口拦截问题

内容的提问来源于stack exchange,提问作者Cristian Moreno - Kyonax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:02:36