sql-server - 在 Ubuntu 20.10 机器上使用 pyodbc 连接到 Microsoft SQL Server Express 的问题
问题描述
在我的计算机上,我有两个使用 VMWARE Workstation 运行的虚拟机。
一台运行我的 python (v. 3.8.10) 代码的 Ubuntu 2.10 机器,以及我的 Microsoft SQL Server 所在的一台 Windows 10 机器。
我想在我的 Ubuntu 机器上使用 Python 代码从 SQL Server 查询数据。
这是我的代码:
import pyodbc
server = 'xxx.xxx.xxx.xxx' <- IP address of the Windows VM
database = 'TestDB'
username = 'TestUser'
password = 'test123'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
我得到这个错误的回应:
pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期 (0) (SQLDriverConnect)')
我已经尝试使用这些凭据登录 Microsoft SQL Server Management Studio,它工作得很好。
谢谢你的帮助。
- - - - -编辑 - - - - -
在 SMS 中运行查询xp_readerrorlog 0, 1, N'Server is listening on'
后,我得到以下结果:
日志日期 | 过程信息 | 文本 |
---|---|---|
2021-09-09 13:24:44.380 | spid33s | 服务器正在监听 ['any' 49677]。 |
2021-09-09 13:24:44.390 | spid33s | 服务器正在监听 ['any' 49677]。 |
解决方案
推荐阅读
- c++11 - 指向堆栈内存的指针
- python - 从 db 获取文件并使用 python 将其保存到本地文件夹中
- python - Django:本地主机:8000 和 127.0.0.1:8000 之间的区别?
- java - 意外的 HashSet 等于行为
- java - HeidelTime: 语言参数被指定为 NULL
- c# - 来自逻辑应用程序的长时间运行任务 api 调用,以避免在 .Net Core 3.0 中多次重试后超时错误请求响应
- java - 如何将 RecyclerView LayoutManager 从 List 更改为 Grid?
- javascript - 带有 Angular 8 图表和调色板的 GoJS 在单独的组件中
- python - 如何使用openCV删除图像中的行
- java - Firebase 数据库值未保存