Python 3.x pyodbc无法连接到本地MSSQL服务器

Python 3.x pyodbc无法连接到本地MSSQL服务器,python-3.x,sql-server-2012,debian,pyodbc,Python 3.x,Sql Server 2012,Debian,Pyodbc,我想在Debian8主机上使用pyodbc从Python连接到MSSQL server2012。当前代码已适用于Azure SQL server,但不适用于本地SQL server。 连接字符串如下所示: import pyodbc server = 'IP' database = 'DB_Name' username = 'user' password = 'pass' driver = '{ODBC Driver 17 for SQL Server}' cnxn = pyodbc.co

我想在Debian8主机上使用pyodbc从Python连接到MSSQL server2012。当前代码已适用于Azure SQL server,但不适用于本地SQL server。 连接字符串如下所示:

import pyodbc

server = 'IP' 
database = 'DB_Name'
username = 'user'
password = 'pass'
driver = '{ODBC Driver 17 for SQL Server}'

cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
我必须使用IP地址,因为我无法通过名称访问SQL server。我可以使用windows计算机上的SSM连接到服务器。我还尝试了以下组合:

server='sqlservername\instancename'
server='IP, port'
server='IP\instancename'
driver='SQL Server'
Integrated_Security=false;
Trusted_Connection=no;

但没有一个成功。我登录超时或注册用户时出错。我在windows机器上运行相同的python代码,没有任何问题。

最后我找到了正确的组合。此外,由于@GordThompson,TCP/IP已启用,但在另一个端口上

import pyodbc

server = 'IP\InstanceName, port' 
database = 'DB_Name'
username = 'user'
password = 'pass'
driver = '{ODBC Driver 17 for SQL Server}'

cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

最后我找到了正确的组合。此外,由于@GordThompson,TCP/IP已启用,但在另一个端口上

import pyodbc

server = 'IP\InstanceName, port' 
database = 'DB_Name'
username = 'user'
password = 'pass'
driver = '{ODBC Driver 17 for SQL Server}'

cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

因此,您正在Debian8机器上运行Python+pyodbc,可以连接到云中的Azure SQL实例,但无法连接到本地网络(LAN)中另一台(Windows)机器上运行的SQL Server实例。这是否准确地描述了问题?如果是,您是否验证了SQL Server的LAN实例启用了TCP/IP连接?Hi@GordThompson是的,这就是问题描述,实际上我可以从DotNet应用程序中的Linux(Debian9)计算机连接到该MSSQL实例(连接到同一实例上的另一个DB)因此,您在Debian8机器上运行Python+pyodbc,可以连接到云中的Azure SQL实例,但无法连接到本地网络(LAN)中另一台(Windows)机器上运行的SQL Server实例。这是否准确地描述了问题?如果是这样,您是否验证了SQL Server的LAN实例启用了TCP/IP连接?Hi@GordThompson是的,这就是问题描述,实际上我可以从DotNet应用程序中的Linux(Debian9)计算机连接到该MSSQL实例(连接到同一实例上的另一个DB),并且它可以工作。