首页 > 解决方案 > 通过 Python3.7 连接到 SQL Server 的操作错误

问题描述

我使用的是 Python 3.7,几年来我有一个 Python 脚本,它使用以下代码连接到 SQL 服务器:

con_string = 'DRIVER={SQL Server};SERVER='+ server +';DATABASE=' + database
cnxn = pyodbc.connect(con_string)
cursor = cnxn.cursor()

最近在运行脚本时出现以下错误:

OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]SSL Security error (18) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (SECCreateCredentials()). (1)')

我不太确定如何解释这一点,并尝试寻找解决方案,但无法理解其中的大部分内容?

谢谢

2020 年 8 月 18 日更新

在 Gords 的帮助下,我更新了我的驱动程序并根据以下答案构建了一个新的连接字符串:

Pyodbc错误数据源名称未找到并且没有指定默认驱动程序悖论

con_string = 'DRIVER={ODBC Driver 17 for SQL Server};TrustServerCertificate=No;Network=DBMSSOCN;DATABASE='+database+';WSID=L13-CHRISTOPHER;APP={Microsoft® Windows® Operating System};Trusted_Connection=Yes;SERVER='+server+';'

但我仍然收到错误

OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]SSL Security error (18) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (SECCreateCredentials()). (1)')

谢谢

标签: python-3.xodbcpyodbc

解决方案


方法 1 :- 看看这个:

con_string = pyodbc.connect(driver='{SQL Server}', host=server, database=db1, trusted_connection=tcon) 光标 = cnxn.cursor()

如果 Method-1 对您不起作用,那么您的 SQL Server 驱动程序可能需要TLS 1.0,这将在您的计算机上被禁用。更改为最新版本的SNAC将为您解决问题

con_string = pyodbc.connect(driver='{SQL Server Native Client 11.0}', host=server, database=db1, trusted_connection=tcon)


推荐阅读