使用 PyODBC 从 Linux 连接到 SQL Server

sdb*_*rts 6 python linux sql-server unixodbc pyodbc

我目前正在尝试使用 PyODBC 连接到 SQL Server(我无法查看,但有凭据)。我的代码在我的 Windows 桌面上工作,但在移到我的 RedHat Linux 机器上时不起作用。我在 Linux 上需要它来支持一个项目。

这是我所拥有的:

server = 'tcp:myserver\inst1'
database = 'mydatabase'
username = 'myusername'
password = 'mypassword'

cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

pyodbc.OperationalError: ('HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)

Windows 版本和 Linux 版本之间的一个区别是驱动程序部分。Windows 使用“{SQL Server}”,而 Linux 版本使用“{ODBC Driver 13 for SQL Server}”。

在我的 /etc/odbcinst.ini 文件中,我有以下信息:

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1
UsageCount=1
Run Code Online (Sandbox Code Playgroud)

有人有什么建议吗?

Jer*_*meE -1

使用驱动程序路径而不是驱动程序名称。在您的示例中,采用完整的 /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1