无法从 Linux 连接到 Access 数据库
Posted
技术标签:
【中文标题】无法从 Linux 连接到 Access 数据库【英文标题】:Unable to connect to Access database from Linux 【发布时间】:2018-06-27 00:51:00 【问题描述】:我正在尝试连接到我的 ubuntu 18 上的访问数据库,但我不能
self.con = pyodbc.connect(
r'Driver=Microsoft Access Driver (*.accdb);'
r'DBQ=C:\Users\Derar\PycharmProjects\ULMS\ulms.accdb;PWD=v7WC$=3ZJ5pX?h?TM54S')
self.cmd = self.con.cursor()
我得到这个错误
''`r'DBQ=C:\Users\Derar\PycharmProjects\ULMS\ulms.accdb;PWD=v7WC$=3ZJ5pX?h?TM54S')
pyodbc.InterfaceError: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')`
【问题讨论】:
您是否安装了适用于 Linux 的 Access ODBC 驱动程序? (提示:Linux 默认不包含 Access ODBC 驱动程序,Microsoft 不提供非 Windows 平台的 Access ODBC 驱动程序。) Working with an Access database in Python on non-Windows platform (Linux or Mac)的可能重复 【参考方案1】:您似乎正在尝试在 Ubuntu 上运行为 Windows 编写的代码。 看起来路径名不是 POSIX 样式的路径。
您需要正确配置 linux odbc - 或者只需在 Windows 上安装 python 并在那里运行您的代码...
据我所知,accdb 文件没有免费的 linux ODBC 驱动程序。您可能必须转换数据库、使用商业软件或从 Windows 访问数据库。
【讨论】:
这似乎是一些商业软件,可以在 linux 中提供 Access 文件格式支持...easysoft.com/products/data_access/odbc-access-driver/… 配置说明在这里:easysoft.com/products/data_access/odbc-access-driver/… 您显然需要复制访问文件或将其安装在 SMB/CIFS 共享上并相应地修改您的 /etc/odbc.ini 文件【参考方案2】:在这里查看我的答案:
Connect to MS Access in Python
我相信它适用于您的场景。
【讨论】:
“我相信它适用于你的场景。” - 不,不是。您的链接(仅)答案及其引用的博客文章适用于 Windows 环境。 Microsoft 不为非 Windows 平台生成 Access ODBC 驱动程序。详情请见this question。以上是关于无法从 Linux 连接到 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Java WebService 连接到 MS Access 数据库
无法连接到 Access 数据库(“架构不匹配”错误)[重复]
尝试使用 DAO 从外部 Access (Outlook/Excel) 连接到有效数据库会生成 3343 无法识别的数据库格式错误