[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.
·
Pyodbc [HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)
使用pyodbc连接SQL Server时,报超时错误。
代码
import pyodbc
driver = '{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 配置管理器中找到的端口号。
-
下一步选择
允许连接。
-
下一步何时应用该规则,默认选择即可。

-
下一步填写
名称和描述,这一步可自定义。
-
下一步
完成即可。
更多推荐

所有评论(0)