我已经安装了 Docker Desktop 来运行一个映像,该映像在我的 Mac 上运行包含 Microsoft SQL Server 的容器,并使用 Azure Data Studio 作为 GUI,如下所示:
我一直在尝试使用
pyodbc.connect()
函数连接到Microsoft SQL Server,以便我可以从许多XML文件中提取数据并将其加载到SQL Server中。但是,我的代码一直在 pyodbc.connect()
处失败,它给了我错误:
conn = pyodbc.connect('DRIVER={/opt/homebrew/lib/libmsodbcsql.18.dylib};' pyodbc.Error: ('01000', "[01000] [unixODBC][驱动程序管理器]无法打开 lib '/opt/homebrew/lib/libmsodbcsql.18.dylib': 找不到文件 (0) (SQLDriverConnect)" )
我已经安装了 Microsoft 官方网站上的 homebrew、unixODBC 和 ODBC Driver 18 for SQL Server。我尝试搜索许多网站来了解该怎么做,我读到的只是我需要能够配置 odbc.ini 文件,但我不确定我到底需要做什么才能正确配置该文件。目前,我的 odbc.ini 文件是空白的,我的 odbcinst.ini 文件具有以下内容:
我当前的代码指定了 SQL Driver 18 的确切路径目录:
非常感谢任何有关此问题的帮助,
conn = pyodbc.connect('DRIVER={/opt/homebrew/lib/libmsodbcsql.18.dylib};' pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/homebrew/lib/libmsodbcsql.18.dylib' : file not found (0) (SQLDriverConnect)")
如果
ODBC Driver 18 for SQL Server
未正确安装,那么您可能会收到上述错误。按照MS Document安装适用于 SQL Server (macOS) 的 Microsoft ODBC 驱动程序。除此之外,使用下面的代码通过 pyodbc
: 连接到 SQL Server
import pyodbc
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};'
'<serverName>;'
'DATABASE=<databaseName>;'
'UID=<userName>;'
'PWD=<password>')
cursor = conn.cursor()
cursor.execute("SELECT * FROM <tableName>")
rows = cursor.fetchall()
for row in rows:
print(row)
即可连接成功,如下图:
更多信息可以参考这个。