通过 Python pyodbc 连接到 SQL Server 的问题

时间:2021-01-06 15:02:40

标签: python sql sql-server pyodbc

我有一个一直无法解决的问题。它涉及将数据加载到 SQL 服务器数据库的 Python 脚本。

<div class="wrapper">
  <!-- Wrapper Start -->
  <h1 class="effect-wrapper">Coding is <span class="typed"></span> <span class="cursor">&nbsp;</span></h1>
</div>
<!-- Wrapper End -->

当我从本地机器运行它时它工作正常,但是当我从服务器运行相同的脚本时,我收到以下错误:

conn = pyodbc.connect(r'Driver={SQL Server};' pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]SSL 安全错误 (18) (SQLDriverConnect);[08001] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB] ConnectionOpen (SECCreateCredentials()).(1)')

这是在本地和服务器上使用相同的用户帐户。 有人可以帮忙吗?

抱歉,如果这看起来像是重复的问题,我已经在 StackOverFlow 上阅读了许多类似的问题,但没有一个解决方案有帮助。我知道代码很好,因为它在本地运行正常,但我无法从服务器运行它。

非常感谢任何建议。

谢谢

1 个答案:

答案 0 :(得分:1)

前一段时间我也遇到过它并做了以下事情,请尝试让我知道:

编辑/etc/ssl/openssl.cnf 添加或进行以下更改并告诉我。

MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=1

或者如果它是一个窗口机器,它可能是一个驱动程序问题,请将驱动程序更改为以下任何一种并检查

driver='{SQL Server Native Client 11.0}',  
or driver={ODBC Driver 17 for SQL Server};

另请注意,您可能需要下载并安装以下链接中给出的 windows odbc 驱动程序

https://docs.microsoft.com/en-us/sql/connect/odbc/windows/system-requirements-installation-and-driver-files?view=sql-server-ver15#installing-microsoft-odbc-driver-for-sql-server

谢谢!