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

Mac上pyodbc连接SQL Server失败求助:驱动文件找不到错误

解决Mac上pyodbc连接SQL Server驱动找不到的问题

1. 先确认驱动文件实际存在

首先执行命令验证驱动路径是否正确:

ls /opt/homebrew/lib/libmsodbcsql.18.dylib

如果返回No such file or directory,说明你可能是Intel架构Mac(homebrew路径为/usr/local/lib),或者驱动安装路径有误。此时用以下命令查找实际路径:

find / -name "libmsodbcsql.18.dylib" 2>/dev/null

找到实际路径后替换到连接字符串或odbcinst.ini中。

2. 利用odbcinst.ini配置简化连接(推荐)

既然你的odbcinst.ini已有对应内容,确保其条目格式正确(以ODBC Driver 18为例):

[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/homebrew/lib/libmsodbcsql.18.dylib
UsageCount=1

此时连接字符串无需写完整驱动路径,直接用驱动名称,避免路径写错:

conn = pyodbc.connect(
    'DRIVER={ODBC Driver 18 for SQL Server};'
    'SERVER=localhost,1433;'  # Docker容器映射的默认端口
    'DATABASE=你的数据库名;'
    'UID=sa;'
    'PWD=你的SQL Server密码;'
    'Encrypt=yes;'
    'TrustServerCertificate=yes;'  # Docker容器未配置证书时需添加
)

3. 若坚持使用驱动路径,确保路径绝对正确

如果一定要在连接字符串里写完整路径,需注意:

  • M1/M2 Mac的homebrew路径是/opt/homebrew,Intel Mac是/usr/local
  • 确认驱动文件名准确,比如是否是libmsodbcsql.18.dylib还是libmsodbcsql.17.dylib(取决于安装版本)

4. 验证unixODBC与驱动的兼容性

执行命令检查unixODBC是否能识别驱动:

odbcinst -q -d

如果能列出[ODBC Driver 18 for SQL Server],说明驱动已被正确识别,此时用驱动名称连接更可靠。

5. odbc.ini配置(可选)

odbc.ini用于定义DSN(数据源名称),若需用DSN连接,可添加如下内容:

[MySQLServerDSN]
Driver=ODBC Driver 18 for SQL Server
Server=localhost,1433
Database=你的数据库名
UID=sa
PWD=你的密码
Encrypt=yes
TrustServerCertificate=yes

之后连接字符串可简化为:

conn = pyodbc.connect('DSN=MySQLServerDSN;')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:37:15