Linux系统下使用RODBC包读取accdb文件报错求助
Linux下使用RODBC读取Access .accdb文件的解决方案
明确说明:2023年Linux下可以实现读取Access .accdb文件,你遇到的“数据源名称未找到且无默认驱动”错误,核心原因是Linux系统默认没有内置Access ODBC驱动,而非该操作无法实现。
具体解决步骤:
- 安装Access兼容的ODBC驱动:Linux下可借助
mdbtools项目提供的驱动,它支持读取.mdb和.accdb格式文件。在Ubuntu 20.04上执行以下命令完成安装:sudo apt update sudo apt install mdbtools libmdbodbc1 - 配置ODBC驱动信息:编辑系统ODBC配置文件
/etc/odbcinst.ini,添加以下内容以注册驱动:[MDBToolsODBC] Description = MDBTools ODBC Driver Driver = /usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so FileUsage = 1 - 在R中建立正确连接:不要直接将文件路径传入
odbcConnect,而是通过驱动名称+文件路径构建连接字符串,示例代码如下:library(RODBC) con <- odbcDriverConnect("Driver=MDBToolsODBC;DBQ=./data/detections.accdb") - 验证连接有效性:连接成功后,可执行
sqlTables(con)查看数据库内的表结构,确认文件读取状态。
注意事项:
mdbtools对.accdb的支持基于反向工程实现,若数据库包含复杂查询、VBA代码等特性,可能出现兼容问题,无法完美读取所有内容。- 确保当前用户对
./data/detections.accdb文件拥有读取权限,否则会触发权限类错误。
内容的提问来源于stack exchange,提问作者Murray
相关产品推荐
相关产品推荐

