DBeaver需通过UCanAccess JDBC驱动连接.mdb文件,因其纯Java、跨平台、免安装Access;须匹配32/64位环境、选对版本(老旧.mdb用4.0.4)、设绝对路径;常见报错包括驱动未加载、语法不支持、权限/路径问题及加密/只读限制。

DBeaver 无法直接打开 .mdb 文件,必须通过 JDBC 驱动(UCanAccess)建立数据库连接,且需注意 32/64 位环境匹配、驱动版本兼容性、文件路径权限这三点,否则会报 java.lang.ClassNotFoundException: net.ucanaccess.jdbc.UcanaccessDriver 或 Could not load database driver。
为什么选 UCanAccess 而不是 ODBC
Windows 上虽有 Access Database Engine(ACE OLEDB)可配合 ODBC 数据源使用,但 DBeaver 是 Java 应用,不支持原生 OLEDB;它只认 JDBC 驱动。UCanAccess 是纯 Java 实现的开源 JDBC 驱动,能读取 .mdb 和 .accdb,无需安装 Microsoft Access 或 ACE 驱动,跨平台可用。
不过要注意:UCanAccess 5.0.0+ 默认依赖 HSQLDB 作为内存引擎,若你连的是老旧 .mdb(Jet 3.x / 4.x),建议降级到 UCanAccess 4.0.4,否则可能因 HSQLDB 版本不兼容导致表结构解析失败或字段类型映射错误。
将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。
手动加载 UCanAccess 驱动(DBeaver CE 24+ 推荐)
DBeaver 社区版默认不自动下载 UCanAccess,需手动添加驱动 JAR 包:
- 下载
ucanaccess-5.0.1.jar、commons-lang3-3.8.1.jar、commons-logging-1.2.jar、hsqldb-2.7.2.jar、jackcess-4.0.5.jar(全部来自 UCanAccess 官方 SourceForge) - 在 DBeaver 中:菜单 →
数据库→驱动管理器→ 新建 → 名称填UCanAccess 5.0.1→ 类名填net.ucanaccess.jdbc.UcanaccessDriver - 点击
添加文件,把上面 5 个 JAR 全部加入 → 点击查找类确认类存在 → 保存 - 新建连接时选择该驱动,
数据库文件路径必须是**绝对路径**(如C:\data\test.mdb),不能用相对路径或网络映射盘符(Z:\会失败)
连接时常见报错与绕过方式
即使驱动加载成功,仍可能遇到:
-
net.ucanaccess.jdbc.UcanaccessSQLException: unexpected token: SELECT:说明 MDB 含有 Access 特有语法(如IIF()、SWITCH()),UCanAccess 不支持。解决办法是避免执行含这些函数的查询,或先导出为 CSV 再处理 -
Access is denied(Windows):文件被其他程序(如 Excel、Access)独占打开。关闭所有可能占用该文件的进程,或复制一份副本再连 -
Invalid path or file name:路径含中文、空格或特殊符号(如&、#)。改用全英文无空格路径,或把 MDB 放到C:\temp\这类简单位置再试 - 连接后看不到表:检查 MDB 是否加密(UCanAccess 不支持密码保护的 .mdb),或是否为只读属性(右键文件 → 属性 → 取消勾选“只读”)
真正麻烦的从来不是点几下配好连接,而是 MDB 里那些没文档的字段别名、隐藏的 Jet 引擎约束、以及 Access 自动插入的 OLE Object 字段——它们不会报错,但导出时会变成乱码或空值。动手前先用 LibreOffice Base 打开确认下结构,比在 DBeaver 里反复试更省时间。

















