【发布时间】:2019-04-30 08:16:40
【问题描述】:
我想在 Debian8 主机上使用 pyodbc 从 Python 连接到 MSSQL server2012。当前代码已适用于 Azure SQL 服务器,但不适用于本地 SQL 服务器。 连接字符串如下所示:
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 服务器。我可以在 Windows 机器上使用 SSMS 连接到服务器。我也尝试过以下组合:
server='sqlservername\instancename'
server='IP, port'
server='IP\instancename'
driver='SQL Server'
Integrated_Security=false;
Trusted_Connection=no;
但他们都没有工作。我在注册用户时遇到登录超时或错误。我在 windows 机器上运行相同的 python 代码没有任何问题。
【问题讨论】:
-
因此,您在 Debian8 机器上运行 Python+pyodbc,您可以连接到云中的 Azure SQL 实例,但无法连接到在另一台 (Windows) 机器上运行的 SQL Server 实例您的本地网络 (LAN)。这是否准确地描述了问题?如果是,您是否验证了 SQL Server 的 LAN 实例启用了 TCP/IP 连接?
-
嗨 @GordThompson 是的,这就是问题描述,实际上我可以从 DotNet 应用程序中的 Linux(Debian9)机器连接到那个 MSSQL 实例(连接到同一实例上的另一个数据库)并且它可以工作.
标签: python-3.x sql-server-2012 debian pyodbc