如何解决通过Python3.7连接到SQL Server的操作错误
我正在使用Python 3.7,几年来,我有一个使用以下代码连接到SQL Server的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 error Data source name not found and no default driver specified paradox
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()
如果Method-1不适用于您,则您的SQL Server驱动程序可能需要 TLS 1.0,它将在您的计算机上被禁用。更改为 SNAC 的最新版本将为您解决问题
con_string = pyodbc.connect(driver='{SQL Server Native Client 11.0}',trusted_connection=tcon)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。