通过Python3.7连接到SQL Server时出现操作错误



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

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)')

感谢

方法-1:-检查一下:

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

如果方法1不适用于您,那么您的SQL Server驱动程序可能需要TLS1.0,而这将在您的计算机上禁用。更改为SNAC的最新版本将为您解决问题

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

相关内容

  • 没有找到相关文章

最新更新