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

Arch Linux下pyodbc连接Access .accdb文件驱动缺失问题求助

解决Arch Linux下无法找到Microsoft Access Driver (*.accdb)的问题

问题根源

你安装的msodbcsql是Microsoft SQL Server的ODBC驱动,并非Access数据库的驱动——这就是找不到Access驱动的核心原因。Microsoft官方未给Linux平台提供Access ODBC驱动,需用第三方替代方案。

解决方案:使用mdbtools + unixODBC驱动

1. 安装mdbtools及相关组件

mdbtools是开源的Access数据库工具集,包含Linux可用的Access ODBC驱动。在Arch Linux上通过AUR安装:

# 先安装基础编译工具(未安装的话)
sudo pacman -S base-devel git
# 克隆AUR包并编译安装
git clone https://aur.archlinux.org/mdbtools.git
cd mdbtools
makepkg -si

2. 配置ODBC驱动

安装完成后,将mdbtools的驱动信息添加到ODBC配置文件:

  • 编辑用户级配置~/.odbcinst.ini(或系统级/etc/odbcinst.ini)
  • 添加以下内容:
[MDBToolsODBC]
Description=MDBTools ODBC Driver
Driver=/usr/lib/libmdbodbc.so
UsageCount=1

3. 修改Python连接字符串

把原连接字符串里的驱动名称替换为MDBToolsODBC:

import pyodbc

conn_str = r"DRIVER={MDBToolsODBC};" +\
           r"DBQ=/home/stephen/shared/diet/access/CNF2015.accdb"

try:
    conn = pyodbc.connect(conn_str)
    print("连接成功!")
    # 后续数据库操作...
    conn.close()
except pyodbc.Error as e:
    print(f"连接失败:{e}")

4. 验证驱动是否生效

用odbcinst命令查看已安装的驱动:

odbcinst -q -d

输出中出现[MDBToolsODBC]即表示配置成功。

注意事项

  • mdbtools对新版Access(.accdb)的支持存在部分限制,若遇兼容性问题,可尝试将.accdb转换为旧版.mdb格式后再连接。
  • 确认/usr/lib/libmdbodbc.so文件存在,若路径不同,需同步修改odbcinst.ini中的Driver字段。

内容的提问来源于stack exchange,提问作者Stephen Boston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:57:33