驱动类找不到的根源是DBeaver未正确加载JDBC驱动:类名须严格匹配数据库版本(如MySQL 8.x用com.mysql.cj.jdbc.Driver)、jar包需真实存在且路径有效、大小写敏感、同一驱动配置中不可混用多版本jar、必须重启DBeaver进程才能生效。

驱动类找不到,基本就是 DBeaver 没加载到对应 JDBC 驱动类——不是配置错了,就是压根没装对的 jar 包,或者类名拼错了。
确认驱动类名是否匹配数据库版本
MySQL 8.x 必须用 com.mysql.cj.jdbc.Driver,填 com.mysql.jdbc.Driver 会直接报 ClassNotFoundException;PostgreSQL 统一用 org.postgresql.Driver;SQL Server 是 com.microsoft.sqlserver.jdbc.SQLServerDriver;达梦是 dm.jdbc.driver.dmdriver(注意全小写、无空格、包路径完整);HighGo 是 com.highgo.jdbc.Driver;金仓是 com.kingbase8.driver;神通是 com.oscar.Driver。不同国产库哪怕协议兼容 PostgreSQL,驱动类也完全不通用。
- 别凭印象写,去官网文档或 jar 包里的
META-INF/MANIFEST.MF或反编译看Driver.class所在路径 - 大小写敏感,
DmJdbcDriver或DMJDBCDriver都无效 - MySQL 5.7 及更早可用
com.mysql.jdbc.Driver,但 DBeaver 新建连接默认预设为 8.x 类名,老版本 MySQL 要手动改
检查驱动 jar 是否真实加载
进【数据库】→【驱动管理器】→ 找到对应驱动 → 【编辑】→ 切到【库】选项卡。这里必须看到一个有效的 .jar 文件路径,且该路径下文件真实存在、可读、未损坏。如果显示“无库”“未找到”或路径是 C:\xxx\missing.jar 这种已删除的残留,就等于没装驱动。
- 用
jar -tf xxx.jar | grep Driver确认 jar 包里真有目标类(例如输出dm/jdbc/driver/dmdriver.class) - 避免把多个同名 jar(如 mysql-connector-java-5.1.49.jar 和 8.0.33.jar)同时加进同一个驱动配置,DBeaver 不做版本仲裁,可能加载错
- DBeaver 23.3+ 默认禁用 Maven HTTP 下载源,勾选【Allow unsigned drivers】才能手动添加本地 jar
重启 DBeaver 是硬性步骤
改完驱动类名、加完 jar、删掉旧配置——这些操作都不会被正在运行的 JVM 实时感知。DBeaver 启动后会缓存驱动类加载器上下文,不重启就永远找不到新类。
- 必须彻底退出进程(Windows 任务管理器查
dbeaver.exe,macOS 活动监视器查DBeaver),不能只关窗口 - 尤其在 macOS 上,右上角红叉只是隐藏,需 Command+Q 强制退出
- 重启后首次测试连接前,建议打开 Help → Show Log,搜索
ClassNotFoundException看是否还有残留报错
最容易被忽略的是:驱动类名和 jar 包必须来自同一厂商同一版本号,比如 mssql-jdbc-12.6.0.jre11.jar 对应 com.microsoft.sqlserver.jdbc.SQLServerDriver,换成 mssql-jdbc-11.2.3.jre8.jar 就得确保 JRE 版本是 8,否则连类加载都触发不了——不是报错,而是根本不会走到报错那步。










