DBeaver提示“驱动未找到”95%是Driver Class未加载进JVM,需检查驱动管理器中对应数据库条目是否存在、JAR路径是否有效可读、Driver Class与URL Template是否准确匹配,且修改后必须重启DBeaver刷新类加载器。

直接说结论:DBeaver 提示“驱动未找到”,95% 的情况不是网络或数据库问题,而是 Driver Class 没加载进 JVM——它压根没看到你下载的 JAR 文件,或者看到的 JAR 里根本没有那个类。
检查驱动管理器里有没有对应数据库的驱动条目
打开 数据库 → 驱动管理器,找你要连的数据库类型(比如 “MySQL”、“PostgreSQL”、“Microsoft SQL Server”)。常见误区是以为“列表里有名字”就等于“已就绪”,其实要看状态栏是否显示“已加载”。
- 如果条目是灰色、带红色叉号,或状态写“未加载”,说明驱动注册失败
- 如果整个列表里压根没有该数据库(比如连 TDengine 或达梦时搜不到),说明 DBeaver 社区版默认不预置,必须手动添加
- 点击条目后点 编辑,切到 库 页签,确认 JAR 文件路径存在、可读、且文件名没被临时重命名(如
mysql-connector-java-8.0.17.jar.part是下载中断残留,不能用)
确认 Driver Class 和 URL Template 是否正确
驱动 JAR 包只是容器,真正起作用的是里面的类和 DBeaver 调用它的约定。填错 Driver Class 就像敲错门牌号——JAR 在门口,但 JVM 找不到入口。
- MySQL 8.0+ 必须用
com.mysql.cj.jdbc.Driver;com.mysql.jdbc.Driver已废弃,会报ClassNotFoundException - PostgreSQL 固定为
org.postgresql.Driver;大小写敏感,Org.Postgresql.Driver或postgresql.Driver都不行 - SQL Server 必须是
com.microsoft.sqlserver.jdbc.SQLServerDriver;少个sqlserver或多写ms前缀都会失败 -
URL Template要匹配驱动版本:SQL Server 驱动 12.x 要求encrypt=true;trustServerCertificate=false,漏掉可能不报驱动错,但连接时卡在 TLS 握手
手动添加 JAR 后仍提示“找不到类”,重点查这三处
哪怕你把 JAR 拖进去了、类名也对了,还是报 ClassNotFoundException?大概率是类加载环境出了问题。
- JDK 版本不兼容:mssql-jdbc-12.6.0.jre11 只能在 JRE 11+ 运行,放进 JDK 8 环境会静默失败;jar -tf 查看包内是否有
META-INF/MANIFEST.MF里的Require-Capability字段可辅助判断 - JAR 文件损坏或不完整:用
jar -tf your-driver.jar | grep Driver确认目标类真实存在(例如输出含com/mysql/cj/jdbc/Driver.class) - DBeaver 启动时用了错误的 JDK:Help → About → Installation Details → 查看
java.home路径,确保它和你用来验证 JAR 的 JDK 一致;Windows 用户尤其要注意系统 PATH 里可能有多个 JDK,DBeaver 可能没读取你预期的那个
内网/离线环境必须做好的两件事
离线机器上,DBeaver 不会提醒你缺驱动,只会卡在“测试连接”按钮不可点,或点下去弹“Driver not found”。这时候没人帮你自动下载,全靠人工闭环。
- 下载的 JAR 必须存到**固定路径**,且路径不含中文、空格、括号;DBeaver 重启后会重新读取配置,若路径失效(比如放在桌面临时文件夹),驱动立即退回到“未加载”状态
- 添加完 JAR 后,务必删除驱动配置里所有带红色叉号或“Failed to load”的旧条目——它们会干扰类加载器,即使新 JAR 正确,JVM 也可能因冲突拒绝加载
最常被忽略的一点:驱动配置改完后,必须重启 DBeaver 才能彻底刷新类加载器上下文。只点“测试连接”或“确定”保存,不重启,旧的失败状态可能一直缓存着。



















