“No suitable driver found”报的是JDBC驱动未加载成功,即DriverManager无法识别URL协议对应的驱动类,连接尚未发起。需检查驱动JAR是否存在、Class Name是否准确、URL协议与驱动模板是否严格一致、版本及JDK兼容性是否匹配。

“No suitable driver found”到底在报什么
这个错误不是连接失败,而是连接根本没发起——DBeaver 连 JDBC 驱动这一步就卡死了。它意味着 java.sql.DriverManager 找不到能处理你填的 jdbc:xxx:// 协议的驱动类,连 TCP 握手都没开始。常见现象包括:测试按钮灰掉、弹窗报错、日志里反复出现 No suitable driver found for jdbc:mysql:// 或类似 URL。
检查驱动是否真的加载成功
别信“自动下载完成”的提示,DBeaver 的自动下载经常静默失败,尤其在有代理、网络波动或国内镜像源不可用时。必须手动确认:
- 打开
Database → Driver Manager,找到对应数据库(如MySQL、PostgreSQL)项,点Edit - 切换到
Libraries标签页,确认列表里至少有一个.jar文件(比如mysql-connector-j-8.3.0.jar或postgresql-42.7.3.jar),且路径是真实存在的本地文件 - 检查
Class Name是否准确:
– MySQL 8+ 必须是com.mysql.cj.jdbc.Driver(不是旧版com.mysql.jdbc.Driver)
– PostgreSQL 必须是org.postgresql.Driver
– 达梦必须是dm.jdbc.driver.DmDriver(注意没有版本后缀) - 如果 Jar 包路径含中文、空格或符号(如
我的驱动\mysql.jar),换到纯英文路径下重试
驱动版本和数据库/Java 版本必须对齐
驱动不是越新越好,错配会导致类加载失败或协议不识别。几个关键匹配点:
- MySQL 5.7 及以下 → 用
mysql-connector-java-5.1.49.jar,Class Name是com.mysql.jdbc.Driver - MySQL 8.0+ → 必须用
mysql-connector-j-8.x(注意是-j不是-java),Class Name是com.mysql.cj.jdbc.Driver - PostgreSQL 15+ → 推荐
postgresql-42.7.x,低于 42.6 可能无法识别新认证方式(如 scram-sha-256) - DBeaver 运行在 JDK 17+ 时,老驱动(如达梦
DmJdbcDriver16.jar)会因模块限制加载失败,需换用DmJdbcDriver18.jar并确保--add-opens已配置
URL 协议前缀和驱动定义必须严格一致
DBeaver 用 URL 的协议部分(jdbc:xxx 中的 xxx)去匹配驱动管理器里注册的驱动名。哪怕只差一个字母或大小写,都会失败:
- 填了
jdbc:mysql://,但驱动管理器里选的是MySQL 5(旧模板)或误选成MySQL 8模板但没更新 Class Name → 不匹配 - PostgreSQL 连接串写了
jdbc:postgresql://,但驱动模板选成了PostgreSQL (legacy)或Greenplum→ 协议名不一致 - 达梦连接串是
jdbc:dm://,但驱动模板选的是Oracle或留空 → 完全不识别 - 检查驱动管理器中该驱动的
URL Template字段,必须和你连接时填的 URL 开头完全一致(包括大小写)
最容易被忽略的是驱动模板和实际 URL 的协议名脱节——很多人改了 Jar 包和 Class Name,却忘了同步检查并修正驱动模板本身的协议标识。











