Linux 原生不支援 Microsoft Access ODBC 驅動程式,需安裝 mdbtools、unixODBC、libmdbodbc 並設定資料源名稱 (DSN),才能透過 pyodbc 連線查詢 .mdb 檔案。本文以 Debian 系統為例說明完整步驟。
sudo apt-get update
sudo apt-get install mdbtools unixodbc libmdbodbc
若找不到 libmdbodbc,可將 Debian Squeeze 源加入 /etc/apt/sources.list:
deb https://ftp.de.debian.org/debian squeeze main
再執行 apt-get update && apt-get install libmdbodbc。
[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =
[test]
Description = Microsoft Access Try DB
Driver = MDBToolsODBC
Database = /path/to/mdb/file/test.mdb
Servername = localhost
Username =
Password =
Port = 5432
import pyodbc
conn = pyodbc.connect('DSN=test')
cursor = conn.cursor()
cursor.execute('SELECT * FROM "省"') # 中文表名需雙引號
for row in cursor.fetchall():
print(row.Name)
pyodbc 預設不使用 Unicode 處理資料,中文編碼問題常見,建議連線字串加入 charset=utf-8 或升級新版 pyodbc。若僅需單次匯出,可使用 mdb-export 命令列工具直接匯出 CSV:
mdb-export /path/to/file.mdb TableName > output.csv
此方案適合舊系統資料遷移或唯讀查詢場景。