无法使用 M1 在 MacOS 上通过 Python 连接到 SQL-Server

问题描述 投票:0回答:2

环境

  • 系统:Darwin内核版本21.6.0
  • Python:3.11.1
  • pyodbc:4.0.35
  • 操作系统:MacOS 蒙特利 (12.6.3)
  • 数据库:MS SQL Server(在 vscode 上我使用 mssql)
  • 驱动程序:适用于 SQL Server 的 ODBC 驱动程序 18

我正在尝试使用机器上的

pyodbc
模块通过 Python(Jupyter 环境)连接到我公司的 SQL 服务器,但出现错误。我已按照此安装指南进行操作,但仍然无法运行它。

这是我的连接字符串:

我从

pyodbc.drivers()
得到了司机
['ODBC Driver 18 for SQL Server']
因此,

cnxn_str = (
            "DRIVER={'ODBC Driver 18 for SQL Server'};"
            "SERVER=companyserver.net;"
            "DATABASE=somedatabase;"
            "UID=myuid;"
            "PWD=mypassword;")
cnxn = pyodbc.connect(cnxn_str)

这是我收到的错误:

错误:('01000',“[01000] [unixODBC][驱动程序管理器]无法打开 lib ''ODBC Driver 18 for SQL Server'':找不到文件 (0) (SQLDriverConnect)”)

这是我尝试过的:

我尝试执行 Microsoft ODBC 驱动程序安装文档中提供的故障排除:

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

它也不起作用,其次我尝试了

odbcinst -j
命令,这就是我得到的:

DRIVERS............: /opt/homebrew/etc/odbcinst.ini
SYSTEM DATA SOURCES: /opt/homebrew/etc/odbc.ini
FILE DATA SOURCES..: /opt/homebrew/etc/ODBCDataSources
USER DATA SOURCES..: /Users/myname/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
cat /opt/homebrew/etc/odbcinst.ini
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/homebrew/lib/libmsodbcsql.18.dylib
UsageCount=1

使用驱动程序我制作了连接字符串:

cnxn_str = (
            "DRIVER={'/opt/homebrew/lib/libmsodbcsql.18.dylib'};"
            "SERVER=companyserver.net;"
            "DATABASE=somedatabase;"
            "UID=myuid;"
            "PWD=mypassword;")
cnxn = pyodbc.connect(cnxn_str)

我仍然收到此错误:

错误:('01000',“[01000] [unixODBC][驱动程序管理器]无法打开 lib ''/opt/homebrew/lib/libmsodbcsql.18.dylib':找不到文件 (0) (SQLDriverConnect)” )

有人知道我做错了什么吗?任何帮助都会有帮助。

非常感谢!

python sql-server macos database-connection connection-string
2个回答
1
投票

卸载和安装

unixodbc
对我不起作用。我做了这些步骤:

  • brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
    ,然后
  • brew install msodbcsql mssql-tools

0
投票

这是我的问题的解决方案: 我使用 Rene B. 回答问题来解决它。就我而言

brew install msodbcsql mssql-tools 
没有正确安装。我还卸载并重新安装了
unixodbc
,然后安装了
msodbcsql mssql-tools
,这最终对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.