我希望能在Python中远程连接我的网络上的SQL Server数据库,所以我安装了pyodbc,并按照此页面上给出的步骤进行了操作。它指示先通过以下说明“安装适用于SQL Server的Microsoft ODBC驱动程序”。
完成这些步骤后(只需这些步骤),我确定了驱动程序路径并尝试在Python中运行此代码。
import pyodbc as podbc
conn = podbc.connect("Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.1;"
"Server=192.XXX.XXX.XXX;"
"Database=db_name;"
"uid=xxxx;"
"pwd=xxxx;")
执行时我遇到了错误:
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 (10054) (SQLDriverConnect)')
如果您能告诉我为什么出现此错误以及我是否在安装过程中漏掉了任何步骤,会很有帮助。此外,我能够通过 Windows 计算机远程访问 SQL Server,但是每当我尝试通过 Ubuntu 计算机进行访问时,就会出现此错误。
{ODBC Driver 17 for SQL Server}
。您是否安装了Microsoft ODBC Driver for SQL Server? - Thom ADRIVER={ODBC Driver 17 for SQL Server};
,并且您还应该在服务器名称/IP地址前加上tcp:
以强制使用TCP/IP连接,即:Server=tcp:192.XXX.XXX.XXX;
。 - AlwaysLearning;Encrypt=no
,看看是否可以解决问题。如果这样做可以解决问题,那么很可能是因为你连接到一个(非常)旧的/未修补的SQL Server实例,它没有TLS 1.2支持,并且你在Linux客户端上安装了更新的OpenSSL库,禁用了TLS 1.0和TLS 1.1协议。 - AlwaysLearning