本文主要是介绍[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Pyodbc [HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)
使用pyodbc连接SQL Server时,报超时错误。
代码
import pyodbcdriver = '{ODBC Driver 17 for SQL Server}'
server = '192.168.50.106,1433'
database = 'books'
username = 'sa'
password = '123456'
cnxn = pyodbc.connect('DRIVER={};SERVER={};DATABASE={};UID={};PWD={}'.format(driver,server,database,username,password)
)cursor = cnxn.cursor()cursor.execute("SELECT @@version;")
row = cursor.fetchone()
while row:print(row[0])row = cursor.fetchone()
报错信息
/usr/bin/python3.8 /home/wj/wj/project/test/test.py
Traceback (most recent call last):File "/home/wj/wj/project/test/test.py", line 10, in <module>cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=192.168.50.106,1433;DATABASE=books;UID=sa;PWD=123456')
pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')Process finished with exit code 1
找出报错原因
关闭防火墙
控制面板\系统和安全\Windows Defender 防火墙\自定义设置
关闭防火墙可成功连接。
得出结论
SQL Server TCP连接端口没有开放。
解决方法
Windows
-
打开SQL Server 配置管理器(SQL Server Configuration Manager),按图示查看SQL Server TCP端口号。
-
进入
控制面板\系统和安全\Windows Defender 防火墙
,点击高级设置
。 -
在
高级设置
中,点击入站规则
,然后点击新建规则
。 -
新建规则
中,要创建的规则类型选择端口(O)
。 -
下一步选择
TCP
和特定本地端口
,特定本地端口
就是SQL Server 配置管理器中找到的端口号。 -
下一步选择
允许连接
。 -
下一步何时应用该规则,默认选择即可。
-
下一步填写
名称
和描述
,这一步可自定义。 -
下一步
完成
即可。
这篇关于[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!