首页 > 解决方案 > 从 macOS 连接到 Azure 数据库的符号链接问题

问题描述

我正在尝试从我的 SQL Azure 数据库中获取数据。由于与 ODBC 驱动程序的链接混淆,我的 python 代码似乎引发了错误。

这是我的 Python 代码。

from urllib import parse
from sqlalchemy import create_engine

connecting_string = 'Driver={ODBC Driver 13 for SQL Server};Server=tcp:mftaccountinghost.database.windows.net,1433;Database=mft_accounting;Uid=localhost;Pwd=######;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
params = parse.quote_plus(connecting_string)

engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
connection = engine.connect()
result = connection.execute("select 1+1 as res")
for row in result:
    print("res:", row['res'])
connection.close()

这是我得到的错误:

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmsodbcsql.13.dylib' : 找不到文件(0) (SQLDriverConnect)")

当我检查我的终端时,我得到以下结果。无法解决这个问题...

终端

这是我的服务器连接字符串:

约束

标签: pythonodbcazure-sql-databasepyodbc

解决方案


以下是在 UNIX 机器上安装 ODBC 驱动程序的完整指南:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

If you installed the v17 msodbcsql package that was briefly available, you should remove it before installing the msodbcsql17 package. This will avoid conflicts.

尝试卸载驱动程序并重新安装它应该可以工作。

另请查看以下线程以获取更多参考:

无法打开 lib 'ODBC Driver 13 for SQL Server'?符号链接问题?

希望能帮助到你。


推荐阅读